Code opschonen

Status
Niet open voor verdere reacties.

rvdsch

Gebruiker
Lid geworden
18 jun 2009
Berichten
170
Ik heb een formulier gemaakt waarin iemand in een tekstvak een ordernummer invoert en daarna verschijnd het juiste order. Het ordernummer is een Autonummering van Access.
Ik heb de volgende code aan de knop hangen en die geeft problemen.
Private Sub Knop22_Click()
Dim strTabel As String
strTabel = "[AlleOrders Query]"
strSQL = "Select * From " & strTabel & vbCrLf _
& "Where [OrderID]= Me.Ordernummer"
Me.RecordSource = strSQL
Me.Requery

End Sub
 
Kun je uitleggen wat het probleem is?
 
Ik voer een ordernummer in het tekstvak en druk op de knop. Vervolgens krijg ik een foutmelding, parameterwaarde opgeven Me.Ordernummer. Het lijkt wel alsof die het tekstvak niet herkend.
 
Code:
Private Sub Knop22_Click()
Dim strTabel As String
strTabel = "[AlleOrders Query]"
strSQL = "Select * From " & strTabel [COLOR="Red"][B]& vbCrLf _[/B][/COLOR]
& "Where [OrderID]= Me.Ordernummer"
Me.RecordSource = strSQL
Me.Requery

End Sub
De code in het rood hoeft er niet tussen, hij kan op zich ook geen kwaad, maar als je strSQL als geheel zou zien dan staat er

Select * From [AlleOrders Query]Where [OrderID]= Me.Ordernummer"
Zoals je ziet, staat er geen spatie tussen [AlleOrders Query] en WHERE
Verander je code naar

Code:
Private Sub Knop22_Click()
Dim strTabel As String
strTabel = "[AlleOrders Query]"
strSQL = "Select * From " & strTabel & " Where [OrderID]= Me.Ordernummer"
Me.RecordSource = strSQL
Me.Requery

End Sub
 
Bedankt voor je reactie. Ik krijg hem helaas nog niet aan de praat. Het is heel bizar. Normaal krijg je als je in VBA Me. intoetst een dropdownmenutje met al je opties. Echter als ik het in deze code na het Where statement doe dan krijg ik dat menu ook niet te zien. Hij herkent het me.Ordernummer dan ook niet.
 
Echter als ik het in deze code na het Where statement doe dan krijg ik dat menu ook niet te zien. Hij herkent het me.Ordernummer dan ook niet.

Je zit nog in een string (Ik had hem ook gemist)

Verander je code naar:
Code:
Private Sub Knop22_Click()
Dim strTabel As String
strTabel = "[AlleOrders Query]"
strSQL = "Select * From " & strTabel & " Where [OrderID]= " & Me.Ordernummer
Me.RecordSource = strSQL
Me.Requery

End Sub
 
Om te voorkomen dat je per ongeluk een spatie vergeet, wat het effect heeft dat Spiderman aanstipte, zet ik zelf dus meestal een & VbCrLf achter de regels die ik absoluut zeker wil scheiden. Door de code weg te halen, plak je uiteraard tekst direct achter elkaar, en dan moet er alsnog weer een spatie worden tussengezet. Maar daar ligt het probleem dan ook niet.
Krijg je wel een waarde te zien, als je Me.Ordernummer in een Msgbox zet aan het begin van de routine?

Zie nu dat Spiderman scherpere ogen heeft dan ik.... Quootje staat inderdaad verkeerd...
 
Laatst bewerkt:
Dat was hem Spiderman hardstikke bedankt:thumb:
Michel jij ook bedankt voor het meedenken:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan