webForumDet fria alternativet

Funktion för kontroll av största nr i databas?

ASP

10 svar · 335 visningar · startad av Dflex

Medlem sedan juni 2002136 inlägg
Frågan#1

OBS!!! DETTA KAN TYCKAS BESKRIVAS RÖRIGT MEN DET SKA VISST INTE VARA SÅ SVÅRT!

Hej!

Är det någon som vet hur man gör för att kolla en del av ett värde i ett fält i en databas.

Det jag menar med en del av ett värde är att första siffran och sista bokstaven ELLER sista siffran, kan variera, inte ska ingå vid kollen. Funktionen ska då kolla efter det största värdet.

Värdet som plockas ut ska sedan ökas med +1 och slutligen skriva ut i ett formulärfält?

Ex)

Fullständigt värde i databas: 134523A (första siffran(1) och sista bokstaven ELLER siffran ska plockas bort så att endast funktionen jämför "34523". "A" kan även ibland vara en siffra!

Funktionen ser vilket som är det största talet och lägger till +1 så att det blir 34524 istället och skriver slutligen ut det i ett fält i ett formulär.

OBS!!! DETTA KAN TYCKAS BESKRIVAS RÖRIGT MEN DET SKA VISST INTE VARA SÅ SVÅRT!

Mvh

Dflex

Medlem sedan dec. 200012 464 inlägg
#2
q = "select max(cdbl(mid(column,2,len(column)-1))) + 1 from t"
set rs = connect.execute(q)
mv = rs(0)

Borde fungera bra i Access. (Dock inte i någon annan DBMS.)

Medlem sedan juni 2002136 inlägg
#3

Hej!

Vad tror du om denna placeringen av koden?:

<%
id=request.querystring("id")
q = "select max(tbl_ritningar(mid(ritningsnr,2,len(ritningsnr)-1))) + 1 from t"

set rs=Server.CreateObject("adodb.Recordset")
set rs2=Server.CreateObject("adodb.Recordset")

SET Conn= Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ritregister))
sql="SELECT * FROM tbl_Kunder ORDER BY kund"
sql2="SELECT * FROM tbl_Konstruktörer ORDER BY efternamn"
rs.open sql, Conn
rs2.open sql2, Conn

%>

<%
<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="<%=RS("q")%>">

set rs = connect.execute(q)
mv = rs(0)
<%

och den övriga:

<%
<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="q">

set rs = connect.execute(q)
mv = rs(0)
<%

Jag testade men då blir det följande felmeddelande:

Microsoft VBScript compilation error '800a0400'

Expected statement

/uddcomb/admin/ny.asp, line 50

<input type="text" name="ritningsnummer" size="4"
^
maxlength="5" Value="q">

Tack för hjälpen!

Hälsningar

Dflex

Medlem sedan mars 2000126 inlägg
#4

Flytta htmlkoden.

Du får flytta ut din input tagg utanför asp-koden.

Som du har det nu.

<% 
<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="q"> 

set rs = connect.execute(q) 
mv = rs(0) 
<%

Som det skall vara.


<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="q"> 
<%
set rs = connect.execute(q) 
mv = rs(0) 
<%

//Broskan

Medlem sedan juni 2002136 inlägg
#5

Ok...nu blir det:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/uddcomb/admin/ny.asp, line 51

Line 51 är: set rs = connect.execute(q)

Medlem sedan juni 20003 076 inlägg
#6

Du får nog döpa den till nått annat än rs eftersom du redan skapat ett recordset med det namnet.
Sen ska det nog vara Conn istället för connect.
set rs3 = Conn.execute(q)
mv = rs3(0)

Medlem sedan juni 2002136 inlägg
#7

ok...nu blir det istället:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Invalid procedure call

/uddcomb/admin/ny.asp, line 51

Line 51 är: set rs3=conn.execute(q)

Medlem sedan juni 20003 076 inlägg
#8

Selectsatsen, det ska nog vara som LarsG skrev tidigare:
"select max(cdbl(mid(column,2,len(column)-1))) + 1 from tbl_ritningar"

/red: men du ska nog ändra 'column' till din kolumn

Medlem sedan juni 2002136 inlägg
#9

Jo, men min selectsats ser ut så som du beskriver att den ska se ut! Det måste vara ngt annat som är fel, line 51 kanske? Mitt value på input type="text" är value=q

Line 51 är: set rs3=conn.execute(q)

//Dflex

Medlem sedan juni 20003 076 inlägg
#10

Jag förstår inte riktigt koden ovan:

<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="<%=RS("q")%>"> 
<% 
set rs = connect.execute(q) 
mv = rs(0) 
%> 

och den övriga: 

<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="q"> 
<% 
set rs = connect.execute(q) 
mv = rs(0) 
%>

Borde det inte vara ungefär


<% 
set rs3 = conn.execute(q) 
mv = rs3(0) 
%> 
<input type="text" name="ritningsnummer" size="4" maxlength="5" Value="<%=mv%>">

eller jag helt fel ute då?

om du fortfarande får: Invalid procedure call
så lär nog LarsG ta över!

Medlem sedan juni 2002136 inlägg
#11

Det funkade inte. Det blev Invalid procedure call

Men tack för hjälpen iallafall!

Hälsning

Dflex

309 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
175 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)