02. april 2002 - 13:57Der er
11 kommentarer og 2 løsninger
2 ens querys fejler kun det ene sted
Jeg har en query som skal hente nogle data i en tabel. Hvis jeg opretter query'en under Queries så virker den fint nok, men hvis jeg kører den samme query når jeg trykker på en knap på en form, så fejler den. Fejlen er "Incorrect syntax near '12'" (den første tid i between delen!)
Query'en ser sådan her ud:
SELECT H.CIPStart_DT, H.CIPStop_DT, D.Description, H.AlarmCount FROM tblCIP_Header AS H INNER JOIN tblCIP_Description AS D ON H.Description_Nr=D.Description_Nr WHERE H.CIPStart_DT Between (#12/10/2001 12:51:0#) And (#1/14/2002 12:51:0#);
Den virker som sagt fra en Queri i Access, men når jeg bygger den op som vist nedenstående, så får jeg føromtalte fejl:
Dim rsCIP As Recordset Dim Conn As Connection Dim Cmd As Command
Set Conn = New ADODB.Connection Conn.Open "ReportDB", "sa", ""
' Create command object. Set Cmd = New ADODB.Command Set Cmd.ActiveConnection = Conn
Cmd.CommandText = "SELECT H.CIPStart_DT, H.CIPStop_DT, D.Description, H.AlarmCount " & _ "FROM tblCIP_Header AS H INNER JOIN tblCIP_Description AS D " & _ "ON H.Description_Nr=D.Description_Nr " & _ "WHERE H.CIPStart_DT Between (#12/13/2001 12:51#) And (#12/14/2001 12:51#)"
'Create Recordset Set rsCIP = New ADODB.Recordset Set rsCIP = Cmd.Execute
While Not rsCIP.EOF LInfo.AddItem Item:=rsCIP!CIPStart_DT & ";" & rsCIP!CIPStop_DT & ";" & rsCIP!Description & ";" rsCIP.MoveNext Wend
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvordan vil du angive navnet !? Hvis jeg bare skriver navnet på den så kommer den med en "Variable not defined" og hvis jeg skriver "navn" så tror den det er en Stored Procedure !
Du siger at du har queryen liggende og at den fungere, når du køre den manuelt fra databasevinduet. Det navn, som queryen har, kan du jo angive i din commandtext!
Hvis du lige prøvet at læse min sidste kommentar igen, så vil du se at det netop er det jeg lige har prøvet ! :)
Altså, hvis jeg skriver cmd.Commandtext = "QueryNavn" så tror den det er en Stored Procedure, og hvis jeg skriver cmd.Commandtext = QueryNavn så tror den det er en variabel !
Har fået løst problemet nu. Det største problem var sådan set at Access åbenbart vil ha' dato/tid som en streng når det bli'r kørt fra VBA så derfor blev # erstattet med ' de steder den var brugt ! Og så byttede jeg også lige rundt på dag og måned.
Således kom det hele til at se sådan her ud:
Dim rsCIP As Recordset Dim Conn As Connection Dim Cmd As Command Dim StartDT As String Dim StopDT As String
Set Cmd = New ADODB.Command Set Cmd.ActiveConnection = Conn
Cmd.CommandText = "Select H.CIPStart_DT, H.CIPStop_DT, D.Description, H.AlarmCount from tblCIP_Header as H " & _ "inner join tblCIP_Description as D on (H.Description_Nr = D.Description_Nr) Where H.CIPStart_DT Between ('" & _ StartDT & "') And ('" & StopDT & "')"
'Create Recordset Set rsCIP = New ADODB.Recordset Set rsCIP = Cmd.Execute
While Not rsCIP.EOF LInfo.AddItem Item:=rsCIP!CIPStart_DT & ";" & rsCIP!CIPStop_DT & ";" & rsCIP!Description & ";" rsCIP.MoveNext Wend
rsCIP.Close Conn.Close
Du får dog alligevel lidt som tak for hjælpen :)
Snowball
Synes godt om
Ny brugerNybegynder
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.