Avatar billede boba_dk Nybegynder
16. september 2004 - 11:55 Der er 53 kommentarer og
1 løsning

Opdatere flere records af gangen

Hej Eksperter!

Jeg har et problem med at opdatere flere records af gangen.

Jeg har prøvet UPDATE SET, men kan ikke få det til at virke.


Min kode:

---------------------------

'Dimension variables
Dim rsUpdateEntry        'Holds the recordset for the record to be updated
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (session("df"))
lngRecordNo1 = (session("dt"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"

'Create an ADO recordset object
Set rsUpdateEntry = Server.CreateObject("ADODB.Recordset")


'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" &

lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej' order by datoi; "

'Set the cursor type we are using so we can navigate through the recordset
rsUpdateEntry.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsUpdateEntry.LockType = 3

'Open the tblComments table using the SQL query held in the strSQL varaiable
rsUpdateEntry.Open strSQL1, adoCon



'Write the updated recordset to the database
rsUpdateEntry.Update






'Reset server objects
rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

Session.Contents.RemoveAll()


'Return to the update select page incase another record needs deleting
Response.Redirect "default.asp"

------------------

Håber at det er forståeligt...
Avatar billede fennec Nybegynder
16. september 2004 - 12:19 #1
Det er ikke nødvendigt med et recordset når du updatere. Og heller ikke en "order by"


StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"
adoCon.execute(StrSQL1)
Avatar billede boba_dk Nybegynder
16. september 2004 - 12:34 #2
Jeg kan ikke få det til at virke, jeg har har fjernet alle rsUpdateEntry recordsets.

Jeg erikke den største haj til dette...

'Dimension variables
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (session("df"))
lngRecordNo1 = (session("dt"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"


'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" &

lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"

adoCon.execute(StrSQL1)



'Reset server objects
rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

Session.Contents.RemoveAll()


'Return to the update select page incase another record needs deleting
Response.Redirect "default.asp"
Avatar billede fennec Nybegynder
16. september 2004 - 13:54 #3
Du har et linjeskift i din StrSQL1 opbygning. Den skal være ud i en eller samles med _ koden.

StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"

eller:
StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & _
lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"

(klip og klister denne kode ind i din så kan du se det.)
Avatar billede boba_dk Nybegynder
16. september 2004 - 14:18 #4
Virker stadigvæk ikke, jeg har endda slået wordwrap fra på notepad, så den ikke skærer linjerne over.

Koden p.t.

-----------------------
'Dimension variables
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (session("df"))
lngRecordNo1 = (session("dt"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"


'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"

adoCon.execute(StrSQL1)



'Reset server objects
rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

Session.Contents.RemoveAll()


'Return to the update select page incase another record needs deleting
Response.Redirect "default.asp"
Avatar billede fennec Nybegynder
16. september 2004 - 14:23 #5
Der var lige et par ting til. Et komma og tekstangivelse. Det er også

StrSQL1 = "UPDATE test SET sendt = ja, datov = date, WHERE ....

skal være:
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date WHERE ....
Avatar billede boba_dk Nybegynder
16. september 2004 - 15:01 #6
Det var den så pænt ligeglad med.... :-)


'Dimension variables
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (session("df"))
lngRecordNo1 = (session("dt"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"


'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"

adoCon.execute(StrSQL1)



'Reset server objects
rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

Session.Contents.RemoveAll()


'Return to the update select page incase another record needs deleting
Response.Redirect "default.asp"
Avatar billede fennec Nybegynder
16. september 2004 - 15:03 #7
Hvilken fejl får du, og evt linje nummer???
Avatar billede boba_dk Nybegynder
16. september 2004 - 15:10 #8
Ingen fejl, den redirecter bare til default.asp, hvis jeg slår denne fra kommer den ikke med med nogen fejl.
Avatar billede fennec Nybegynder
16. september 2004 - 15:20 #9
Hvis den ikke kommer med en fejl, burde den køre. Prøv evt lige at udskrive StrSQL1 til skærmen og smid den herind.
Avatar billede boba_dk Nybegynder
16. september 2004 - 15:29 #10
Ikke forstået, hvordan går jeg det?
Avatar billede fennec Nybegynder
16. september 2004 - 15:32 #11
response.write "Min SQL: "& StrSQL1

også skal du selvfølgelig ikke redirecte siden, ellers får du ikke udskriften at se.
Avatar billede boba_dk Nybegynder
16. september 2004 - 15:39 #12
Min SQL: UPDATE test SET sendt = 'ja', datov = date WHERE datoi >= #02-11-2004# AND datoi <= #02-11-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'



Jeg tænkte lige, kunne det være datoformatet den vender om, hvis det er har jeg tidligere brugt dette med succes:

Function ConvertToSqlDate(dato)
    dim SQLYear,SQLMonth,SQLDay
    SQLYear = Year(dato)
    SQLMonth = Month(dato)
    SQLDay = Day(dato)
    if SQLDay<10 then
        SQLDay = 0&SQLDay
    end if
    if SQLMonth<10 then
        SQLMonth = 0&SQLMonth
    end if
    ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear
End Function

Kan det være dette?
Avatar billede boba_dk Nybegynder
16. september 2004 - 15:44 #13
Jeg kan lige testet med 2 records med datoen 11-02-2004 men den har ikke ændret disse hvis jeg taster 02-11-2004
Avatar billede fennec Nybegynder
16. september 2004 - 15:47 #14
Det er jo min converter :o)

Access formatet skal være mm-dd-yyyy eller yyyymmdd. Det kan også være fordi der ikke er nogen resultater at updatere. Det er jo kun dem med datoi = 02-11-2004 + de andre krav som bliver updateret.
Avatar billede fennec Nybegynder
16. september 2004 - 15:49 #15
Prøv at lave to records, som passer på kriterierne, men med de to forskellige datoer.
Avatar billede boba_dk Nybegynder
16. september 2004 - 16:30 #16
Jeg har oprettet 2 records med datoen 11-02-2004 og 3 med 02-11-2004, den opdaterer ingen af dem når jeg taster 02-11-2004
Avatar billede fennec Nybegynder
16. september 2004 - 16:32 #17
Og kgbet ='nej' og ann ='nej' og sendt ='nej' på de records??? (bare for at være sikker)
Avatar billede boba_dk Nybegynder
16. september 2004 - 16:48 #18
Ja, det lægger den ind default når man opretter dem, jeg har lige kontrolleret, de er alle oprettet med 'nej' (Uden '')
Avatar billede fennec Nybegynder
17. september 2004 - 09:00 #19
Prøv lige at udvide din execute med dette. Så får vi nemlig at vide hvor mange rækker der bliver opdateret (det er sikkert 0).

AmountRecords = 0
adoCon.execute(StrSQL1,AmountRecords)
response.write "Rows affected: "& AmountRecords
Avatar billede boba_dk Nybegynder
17. september 2004 - 09:39 #20
Får følgende fejl:

Cannot use parentheses when calling a Sub

adoCon.execute(StrSQL1,AmountRecords)
Avatar billede fennec Nybegynder
17. september 2004 - 09:45 #21
selvfølgelig.... Sådan:

adoCon.execute StrSQL1,AmountRecords
Avatar billede boba_dk Nybegynder
17. september 2004 - 10:15 #22
Den skriver:

Rows affected:


Hverken 0,1,2,3, ect.
Avatar billede fennec Nybegynder
17. september 2004 - 10:29 #23
Nu er jeg fuldstændig lost..... Der er bare et eller andet galt, som jeg ikke kan forstå. AmountRecords skal blive sat til det antal records der bliver berørt af sql-sætningen. Jeg har aldrig hørt/oplevet at den kan være tom. Den er altid 0 hvis der ikke er nogen records. Jeg bruger nemlig ofte en update/insert syntax, til at tjekke om en record eksistere, ellers skal den indsætte i stedet.

conn.execute "update EnTabel set .... where id="& ID, AmountRecords
if AmountRecords = 0 then
  conn.execute("insert into EnTabel(..) values(..)")
end if

Hvad sker der hvis du tager din SQL-sætningen (den som du udskrev på skærmen) og fyrer den af som en sql forespørgelses i Access???
Avatar billede boba_dk Nybegynder
17. september 2004 - 11:06 #24
Den opdaterer de 2 records, dog med omvendt dato, med den opdaterer dog 2.....
Avatar billede fennec Nybegynder
17. september 2004 - 11:17 #25
Hvis den gør det i Access skal den også gøre det gennem ASP. Jeg er virkelig forviret nu. Har du et eller andet i koden som kan forhindre kørslen?? Kan ikke forestille mig hvad det skulle være, men det er det eneste jeg kan forestille mig nu.
Avatar billede boba_dk Nybegynder
17. september 2004 - 12:58 #26
Jeg har lavet om på den... lavet en "back to basics" udgave uden session og alt dette.

jeg får nu denne lille dumme fejl:

Object required: ''
ryk20.asp, line 38


Koden:

-----

<%Response.Expires=-1%>
<% Session.LCID = 1030 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>test</title>
<!--#include file="style.asp"-->
</head>
<body bgcolor="white" text="black">
<%

Function LongYear()
LongYear = Day(Date()) & "-" & Month(Date()) & "-" & Year(Date())
End Function

'Dimension variables
Dim adoCon             'Holds the Database Connection Object
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (Request.Form("datofra"))
lngRecordNo1 = (Request.Form("datotil"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"

'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"


rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing

'Return to the update select page incase another record needs deleting
'Response.Redirect "default.asp"

%>
<% Session.LCID = 1030 %>


</BODY>
</HTML>
-----------------------

Du skal foresten have tak for din fortsatte hjælp med denne her satan. :-)
Avatar billede fennec Nybegynder
17. september 2004 - 13:25 #27
Den fejl er fordi du ikke har et rsUpdateEntry objekt. Der mangler du:

Set rsUpdateEntry = Server.CreateObject("ADODB.Recordset")

fra din gamle kode.
Avatar billede boba_dk Nybegynder
20. september 2004 - 09:53 #28
Resultatet:

Min SQL: UPDATE test SET sendt = 'ja', datov = date WHERE datoi >= #02-11-2004# AND datoi <= #02-11-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'

Men der sker intet i DB, jeg opgiver da snart dette..
Avatar billede fennec Nybegynder
20. september 2004 - 10:01 #29
Kan du overhoved lave en update???? Prøv at fyre din sql af i en forkortet udgave (evt i en ny test tabel), så skulle sendt gerne blive sat til ja i alle rækker:

StrSQL1 = "UPDATE test SET sendt = 'ja'"
Avatar billede boba_dk Nybegynder
20. september 2004 - 10:27 #30
Jeg har lavet en ny DB (test1.mdb) med 2 kolonner: ID (autonr) og sendt (tekst) med tabelnavnet test.

Jeg har lavet 15 rækker med teksten 'nej'.


Kode

---


<%Response.Expires=-1%>
<% Session.LCID = 1030 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>test</title>
<!--#include file="style.asp"-->
</head>
<body bgcolor="white" text="black">
<%

Function LongYear()
LongYear = Day(Date()) & "-" & Month(Date()) & "-" & Year(Date())
End Function

'Dimension variables
Dim adoCon             'Holds the Database Connection Object
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (Request.Form("datofra"))
lngRecordNo1 = (Request.Form("datotil"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test1.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"

'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = 'ja'"

'AmountRecords = 0
'adoCon.execute StrSQL1,AmountRecords
'response.write "Rows affected: "& AmountRecords

Set adoCon = Nothing

response.write "<p>"


response.write "Min SQL: "& StrSQL1

'Return to the update select page incase another record needs deleting
'Response.Redirect "default.asp"

%>
<% Session.LCID = 1030 %>


</BODY>
</HTML>

Resultatet:

Min SQL: UPDATE test SET sendt = 'ja'


Men der sker intet i db.
Avatar billede fennec Nybegynder
20. september 2004 - 10:31 #31
Der kører du så hellere ikke noget på databasen :o)
Du skal lige have indkommenteret disse tre linjer.

AmountRecords = 0
adoCon.execute StrSQL1,AmountRecords
response.write "Rows affected: "& AmountRecords
Avatar billede boba_dk Nybegynder
20. september 2004 - 10:36 #32
Nu virker den!
Avatar billede fennec Nybegynder
20. september 2004 - 10:46 #33
Så skal vi have afprøvet det på den første database. Opret en table der hedder "updatetest" der, med samme felter som "test" tabellen fra test1.mdb. Og kør så:

StrSQL1 = "UPDATE updatetest SET sendt = 'ja'"
Avatar billede boba_dk Nybegynder
20. september 2004 - 10:48 #34
Jeg kan ikke få dine 3 linjer der virkede i den simple DB til at virke i den rigtige.


Ryk10.asp
-----------
<% Session.LCID = 1030 %>
<%
Function LongYear()
LongYear = Day(Date()) & "-" & Month(Date()) & "-" & Year(Date())
End Function
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Opdatering test</title>
</head>
<body background="../common/images/bg.gif" BGCOLOR="white" onload="document.form.datofra.focus()">


<h3>Dato ryk 10 søg 15/9-04</h3>


<Table border=0>

    <form name="form" method="post" action="ryk20.asp">
<tr><td>Dato fra</td><td><INPUT TYPE="date" NAME="datofra" SIZE="8"><BR>
</td></tr>
<tr><td>Dato til</td><td><INPUT TYPE="date" NAME="datotil" SIZE="8"><BR>
</td></tr>



<tr>
<td>      <td><INPUT TYPE="SUBMIT" VALUE="Upload">
    </FORM>
</table>

</BODY>
</HTML>



------------
Ryk20.asp

<%Response.Expires=-1%>
<% Session.LCID = 1030 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>test</title>
<!--#include file="style.asp"-->
</head>
<body bgcolor="white" text="black">
<%

Function LongYear()
LongYear = Day(Date()) & "-" & Month(Date()) & "-" & Year(Date())
End Function

'Dimension variables
Dim adoCon             'Holds the Database Connection Object
Dim strSQL1            'Holds the SQL query for the database
Dim lngRecordNo3            'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = (Request.Form("datofra"))
lngRecordNo1 = (Request.Form("datotil"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db\test3.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=test"

'Initialise the strSQL variable with an SQL statement to query the database
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date WHERE datoi >= #" & lngRecordNo & "# AND datoi <= #" & lngRecordNo1 & "#  and kgbet ='nej' and ann ='nej' and sendt ='nej'"


AmountRecords = 0
adoCon.execute StrSQL1,AmountRecords
response.write "Rows affected: "& AmountRecords

Set adoCon = Nothing

response.write "<p>"


response.write "Min SQL: "& StrSQL1

'Return to the update select page incase another record needs deleting
'Response.Redirect "default.asp"

%>
<% Session.LCID = 1030 %>


</BODY>
</HTML>

Får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/pz/ryk20.asp, line 39

Linje 39-40-41:

AmountRecords = 0
adoCon.execute StrSQL1,AmountRecords
response.write "Rows affected: "& AmountRecords


Lide mere info:

POST Data:
datofra=02-11-2004&datotil=02-11-2004
Avatar billede fennec Nybegynder
20. september 2004 - 10:54 #35
Vi bliver nød til at prøve os lidt frem, indtil vi finder fejlen i sql'en, så vi opbygger den lige en kolonne ad gangen. Kan du køre denne igen:

StrSQL1 = "UPDATE test SET sendt = 'ja'"
Avatar billede boba_dk Nybegynder
20. september 2004 - 10:57 #36
Okay, det virker.


Rows affected: 134
Min SQL: UPDATE test SET sendt = 'ja'
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:00 #37
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date"

Laver fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/pz/ryk20.asp, line 38
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:01 #38
Linje 38:

adoCon.execute StrSQL1,AmountRecords
Avatar billede fennec Nybegynder
20. september 2004 - 11:03 #39
Så prøv sådan, for at fortælle at det er en funktion:
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date()"
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:10 #40
Nu sker der noget!

Rows affected: 134
Min SQL: UPDATE test SET sendt = 'ja', datov = date()
Avatar billede fennec Nybegynder
20. september 2004 - 11:16 #41
Det kunne gode være problemet. Prøv lige med den fulde sætning....
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:18 #42
Jeg har udvidet den, men nu sker det ikke noget, jeg har opretter 2 records med hhv. datoi=02-11-2004 og datoi=11-02-2004.

Rows affected: 0
Min SQL: UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #02-11-2004# AND datoi <= #02-11-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'
Avatar billede fennec Nybegynder
20. september 2004 - 11:23 #43
Så må vi fortsætte:

StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #" & lngRecordNo & "#"
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:27 #44
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression 'datoi >= ##'.
/pz/ryk20.asp, line 38

Men jeg har denne gange kørt ryk20.asp, uden at få nogen form data fra ryk10.asp, og så får jeg denne fejl:
Avatar billede fennec Nybegynder
20. september 2004 - 11:32 #45
Det er fordi der ikke er nogen dato i lngRecordNo. Vi kunne jo hardcode en dato ind sålænge vi bare tester.

StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #02-11-2004#"
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:44 #46
Rows affected: 48
Min SQL: UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #02-11-2004#


Den har lagt sig ind på alle de datoer der er lig med eller større end 11. februar, så man skal nok bruge dit datokonverterings-script fra før:

Function ConvertToSqlDate(dato)
    dim SQLYear,SQLMonth,SQLDay
    SQLYear = Year(dato)
    SQLMonth = Month(dato)
    SQLDay = Day(dato)
    if SQLDay<10 then
        SQLDay = 0&SQLDay
    end if
    if SQLMonth<10 then
        SQLMonth = 0&SQLMonth
    end if
    ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear
End Function
Avatar billede fennec Nybegynder
20. september 2004 - 11:51 #47
Det kunne se sådan ud, men vent med det, til vi har fået sql'en til at virke. Indtil vidre bytter vi selv om på datoen.

StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #11-02-2004#" AND datoi <= #11-02-2004#"
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:54 #48
Rettede den til:
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #11-02-2004# AND datoi <= #11-02-2004#"

Ellers virkede den, fandt de 3 records den skulle.
Avatar billede boba_dk Nybegynder
20. september 2004 - 11:57 #49
Denne virker:
StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #11-02-2004# AND datoi <= #11-02-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'"


Rows affected: 3
Min SQL: UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #11-02-2004# AND datoi <= #11-02-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'
Avatar billede fennec Nybegynder
20. september 2004 - 12:02 #50
Så skal vi jo bare have dato'en til at blive dynamisk igen. Så nu skal du have form data med så vi kan få en værdi i lngRecordNo.

StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #"& ConvertToSqlDate(lngRecordNo) &"# AND datoi <= #"& ConvertToSqlDate(lngRecordNo) &"# and kgbet ='nej' and ann ='nej' and sendt ='nej'"
Avatar billede boba_dk Nybegynder
20. september 2004 - 12:28 #51
Den virkede:

StrSQL1 = "UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #"& ConvertToSqlDate(lngRecordNo) &"# AND datoi <= #"& ConvertToSqlDate(lngRecordNo1) &"# and kgbet ='nej' and ann ='nej' and sendt ='nej'"



Rows affected: 3
Min SQL: UPDATE test SET sendt = 'ja', datov = date() WHERE datoi >= #11-02-2004# AND datoi <= #11-02-2004# and kgbet ='nej' and ann ='nej' and sendt ='nej'
Avatar billede boba_dk Nybegynder
20. september 2004 - 12:36 #52
Jeg har nu testet det på den rigtige side og den fungerer totalt perfekt!

Mange tak for hjælpen, det holdt hårdt, men det hjalp at skrælle SQL'en den for at finde fejlen.

Smid et svar for points!
Avatar billede fennec Nybegynder
20. september 2004 - 12:49 #53
Der var ellers en overgang hvor jeg var lige ved at opgive :o)
Avatar billede boba_dk Nybegynder
20. september 2004 - 13:30 #54
D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester