syntax error (missing operator in query expression

  • Onderwerp starter Onderwerp starter Grt99
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Grt99

Gebruiker
Lid geworden
3 feb 2015
Berichten
9
Hoi, ik tracht op een formulier met een combobox een waarde te selecteren die er voor moet zorgen dat de selectie het aantal records beperkt van een tweede combobox.
De eerste combobox 'cdoDsr' selecteert het dossier. Het is de bedoeling dat de tweede combobox alle documenten toont die refereren naar het dossier via een veld in het record van het document.

Ik TRACHTE een VBA routine te gebruiken, bij een after update van de eerste (dossier) combobox.
De originele subroutine was geschreven voor een numerieke primary key en ik vrees dat ik daar de mist in ging, met als gevolg de foutmelding bij het aanklikken van de tweede combobox (cboDocument) :

syntax error (missing operator in query expression 'FROM tblDocument WHERE [tblDocDos]="TEST" '. Waarbij TEST de naam van het geselecteerde dossier is in cboDsr

Ik vermoed een fout met het aantal aanhalingstekens """ of die Value.. die mss enkel geldig is voor getallen en niet voor tekst ????


Private Sub cboDsr_AfterUpdate()
Dim sDocumentSource As String

sDocumentSource = "SELECT [tblDocument].[tblDocNr], [tblDocument].[tblDocdate], [tblDocument].[tblDocfarde], [tblDocument].[tblDocInhoud], [tblDocument].[tblDocDos], [tblDocument].[tblDocOpsteller] FROM [tblDocument] ORDER BY [tblDocdate], [tblDocNr], " & _
"FROM tblDocument " & _
"WHERE [tblDocDos] = """ & Me.cboDsr.Value & """"
Me.CboDocument.RowSource = sDocumentSource
Me.CboDocument.Requery
End Sub



Zou fijn zijn mocht er iemand op basis hiervan de vermoedelijke fout weten te vinden. Thanx
 
Als je de code niet zo slordig had neergezet (ik neem aan dat je dit zo uit je formulier hebt gekopieerd) had je de fout met één oogopslag gezien :). Zelfs hier had dat nog wel gelukt als je de CODE tags had gebruikt.

Code:
sDocumentSource = "SELECT [tblDocNr], [tblDocdate], [tblDocfarde], [tblDocInhoud]," _
    & "[tblDocument].[tblDocDos], [tblDocument].[tblDocOpsteller] " _
    & "FROM [tblDocument] ORDER BY [tblDocdate], [tblDocNr], " _
    & "FROM tblDocument " _
    & "WHERE [tblDocDos] = """ & Me.cboDsr.Value & """"

De correcte versie is derhalve:
Code:
sDocumentSource = "SELECT tblDocNr, tblDocdate, tblDocfarde, tblDocInhoud, tblDocDos, tblDocOpsteller FROM tblDocument WHERE tblDocDos = """ _
     & Me.cboDsr.Value & """ ORDER BY blDocdate, tblDocNr"
 
Laatst bewerkt:
Bedankt voor de snelle en vooral werkende :D oplossing. Ik had het helaas nooit zelf gevonden daar ik helemaal niet thuis ben in VBA. Ik heb wel de vierkante haakjes opnieuw (moeten?) gebruiken voor het lukte, ik vermoed omdat de velden waaruit de combobox put niet aanwezig ziujn op het formulier. Maar bottom line : thanx!
 
Rechte haken rond de veldnamen zijn alleen noodzakelijk als er spaties in de veldnamen zitten. Je zou ze dus niet nodig hoeven te hebben. Maar het mag natuurlijk altijd. Tabelnamen kunnen sowieso weg, en heb je eigenlijk alleen nodig als je een veld gebruikt in een query waarin dat veld in meerdere tabellen voorkomt. Zoals een veld [KlantID] dat in [tKlanten] zit en in [tOrders]. Dat hoeft dan weer niet als het veld [KlantID] heet in [tKlanten] en [Klant_ID] in [tOrders]. Daarom probeer ik zelf zoveel mogelijk om de veldnamen uniek te houden.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan