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.)
10 svar · 335 visningar · startad av Dflex
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
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.)
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
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
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)
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)
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)
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
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
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!