[VB6] SQL string uit acces werkt niet in vb ?

Pagina: 1
Acties:
  • 351 views sinds 30-01-2008
  • Reageer

  • fluppie007
  • Registratie: April 2005
  • Laatst online: 26-01 16:55
Ik denk dat er een fout zit in de syntax van men SQL string, enkel is
deze syntax blijkbaar voor access goed maar niet voor vb6.
Code zegt meer....

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'SQL String in "access" formaat
SELECT Werktijden.WerkID, Werktijden.KlantID, Werktijden.KlantIDN, Werktijden.MedewerkerID, Werktijden.MedewerkerIDN, Werktijden.Datum, Werktijden.Beginuur, Werktijden.Einduur, Werktijden.Opmerkingen, DateDiff("n",[Werktijden]![Beginuur],[Werktijden]![Einduur]) AS Werktijd From Werktijden

'vb code

Private conn As adodb.Connection
Private Rs As adodb.Recordset

Set conn = New adodb.Connection
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & App.Path & "\database97.mdb;" & _
              "Persist Security Info=False"

Set Rs = conn.Execute("SELECT Werktijden.WerkID, Werktijden.KlantID, Werktijden.KlantIDN, Werktijden.MedewerkerID, Werktijden.MedewerkerIDN, Werktijden.Datum, Werktijden.Beginuur, Werktijden.Einduur, Werktijden.Opmerkingen, DateDiff(n, Werktijden.Beginuur, Werktijden.Einduur) AS Werktijd FROM Werktijden;")


Dan krijg ik de volgende error:

Waarden voor 1 of meer vereiste parameters onderbreken. ( en regel 14 wordt geel gemarkeerd )

Zit er een klein verschil op de SQL syntax van access en op die van vb ?
Zie ik iets over het hoofd ? In Access werkt deze SQL string prima in een query...

  • user109731
  • Registratie: Maart 2004
  • Niet online
'vb6' heeft geen sql syntax. Die query word enkel als string doorgestuurd naar de database engine. Waarschijnlijk dezelfde als in Access zelf (?), de sql syntax zal dus gelijk zijn :)

Waarom is "n" die je aan DateDiff geeft in je Access sql een string, en in de query op regel 14 een variabele? Dit is een kwestie van debuggen, begin eens met "SELECT * FROM werktijden". Als dat werkt weet je dat de fout in je sql zit. Vervolgens begin je met een aantal kolommen, dan voeg je je DateDiff toe, etc...

  • fluppie007
  • Registratie: April 2005
  • Laatst online: 26-01 16:55
Fout zit in dat gedeelte, zonder die datediff werkt hij prima.
Die "n" is om aan te geven dat ik in minuten wil rekenen, "mi" mag ook.
Heb wel meer dit soort dingen gedaan, maar begrijp gewoon niet wat er
mis is aan het Datediff gedeelte...

  • user109731
  • Registratie: Maart 2004
  • Niet online
fluppie007 schreef op zaterdag 27 oktober 2007 @ 20:11:
Die "n" is om aan te geven dat ik in minuten wil rekenen, "mi" mag ook.
Heb wel meer dit soort dingen gedaan, maar begrijp gewoon niet wat er
mis is aan het Datediff gedeelte...
Je ziet dat in je Access query n een string is: "n". In je vb sql string is dit niet het geval. n in 'n' veranderen dus :)

[ Voor 13% gewijzigd door user109731 op 27-10-2007 20:19 ]


  • fluppie007
  • Registratie: April 2005
  • Laatst online: 26-01 16:55
super dit werkt ! Had al geprobeerd met "n" maar dat gaf errors, 'n' did the trick !

Bedankt !