Springen naar inhoud


query op access met ado


  • Log in a.u.b. om te beantwoorden
Er zijn 4 reacties in dit onderwerp

#1 VB6Dummy

VB6Dummy

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 5388 berichten
    Laatst bezocht 26 dec 2014 17:43

Geplaatst op 04 mei 2011 - 08:15

thx a lot dudes, works fine now

#2 VB6Dummy

VB6Dummy

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 5388 berichten
    Laatst bezocht 26 dec 2014 17:43

Geplaatst op 04 mei 2011 - 08:15

Juist , je hebt gelijk. Ik was er even met mijn gedachten niet bij. Sorry daarvoor.

Het zijn de enkele quoten voor en achter de variabele "StrZoekmaand" die al een eerste fout geven. Ik wil ook nog eens herhalen dat, wanneer het veld "DAG" in je tabel een numeriek veld is dat de enkele quoten weg moeten. Maar dat heb ik in mijn vorige post reeds uitgelegd. Niet alles was fout h?.

rs.Open "SELECT * from " & StrZoekMaand & " where dag like '" & frmMain.Command1(IntIndex).Caption & "'", db

#3 VB6Dummy

VB6Dummy

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 5388 berichten
    Laatst bezocht 26 dec 2014 17:43

Geplaatst op 04 mei 2011 - 08:15

hier spreek je jezelf toch wel effe tegen:

eerst zeg je dat je van de naam van een tabel geen variabele kan maken en dan doe je het onderaan in je code toch

De fout is een syntax-fout , wat wil zeggen dat er een "tijpfout" inzit en wel:
een spatie voor de WHERE

rs.Open "SELECT * from '" & StrZoekMaand & "'" & " where dag like '" & frmMain.Command1(IntIndex).Caption & "'", db

Succes

#4 VB6Dummy

VB6Dummy

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 5388 berichten
    Laatst bezocht 26 dec 2014 17:43

Geplaatst op 04 mei 2011 - 08:15

Je kan van de naam van een tabel geen variabele maken in een sql statement. Je moet de tabel dus in harde code programmeren.
Wat je misschien wel kan doen is een select statement schrijven om de juiste maand te kiezen

Select Case StrZoekMaand
    Case "Januari"
        rs.Open "SELECT * From Januari ", Verbinding, adOpenStatic, adLockPessimistic
    Case "Februari"
        rs.Open "SELECT * From Februari", Verbinding, adOpenStatic, adLockPessimistic
    Case "Maart"
        rs.Open "SELECT * From Maart", Verbinding, adOpenStatic, adLockPessimistic
    Case "April"
        rs.Open "SELECT * From April", Verbinding, adOpenStatic, adLockPessimistic
'Enzovoort voor iedere maand
End Select
rs.Requery

Wat ik nog wou opmerken is, wanneer het veld DAG in uw tabel numeriek is dan moeten die enkele quoten in uw sql statement weg
Wanneer dag echter een datum is dan moeten de enkele quoten vervangen worden door #
Waarom gebruik je eigenlijk de comparator LIKE in uw sql? Like wordt gebruikt met het teken * op het einde. Dit zie ik ook niet in uw sql

Wanneer je niet met een msql wilt werken dan kan je de sql code misschien declareren in een variabele

Dim sqlCode As String
sqlCode = "SELECT * From " & ZoekMaand
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "mijnDB.mdb"
rx.Open sqlCode, DB, adOpenStatic, adLockPessimistic

#5 VB6Dummy

VB6Dummy

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 5388 berichten
    Laatst bezocht 26 dec 2014 17:43

Geplaatst op 04 mei 2011 - 08:15

heb probs,

ik heb 12 tabellen met de maanden van het jaar, op form staat een sstab die met elke maand per tab, nu per tab staat het aantal buttons die die maand heeft, bij klikken op die button(dagnummer) moet hij een controle doen of er voor die dag al gegevens zijn ingevuld(meeste zijn boolean) indien dit zo is moet hij natuurlijk die gegevens invullen op de form die dan verschijnt. ik werk met ado, deze werkt maar mijn statement ziet er zo uit

    rs.Open "SELECT * from '" & StrZoekMaand & "'" & "where dag like '" & frmMain.Command1(IntIndex).Caption & "'", db


de strzoekmaand wordt bij het buttonclick ingevuld door de caption van die tab (maandnaam dus) frmmain.command1(intindex).caption is de dag(dagnummer)

foutmelding : de query bevat een syntaxisfout, een querycomponent is onvolledig

tweede vraag

wanneer doe je een db.execute "sql statement" ? en/of wanneer doe je een rs.open "sql statement" ? of wat is het verschil erin




0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)