Ik kom zoals altijd weer te laat hé!
Hallo Cyrax en Danny,
Was weer te laat met mijn reactie. Ik zie, dat Danny de oplossing
al gegeven heeft.
Evenwel zal ik mijn uitleg toch hier deponeren. Heb Cyrax z'n
voorbeeld nog niet gedownload.
Allereerst jouw citaat:
"Ik wil hebben dat als ik in het veld txtCode een code ingeef,
en dan op de OK-knop duw, de rest van de velden ingevuld worden."
Het is beter een aparte textbox te gebruiken, die niet met je
Datacontrol/Database verbonden is, om als zoek string (ID) te laten
dienen. Dus nog een aparte textbox op je Form plaatsen. Noemt het
bijvoorbeeld txtZoekCode.
Ga als volt te werk:
Verbind de 4 textvelden (txtAantal was niet van belang zei je, vandaar 4)
met je Datacontol en gebruik het eigenschap Datafield van deze 4 textvelden.
Dit alles voer je in het eigenschappenvenster v.d. desbetreffende textvelden.
1) Klik op de textbox txtCode. Zet Datasource op Data1 en Datafield op ID
2) Klik op de textbox txtOmschr. Zet Datasource op Data1 en Datafield op Omschrijving
3) Klik op de textbox txtBTW. Zet Datasource op Data1 en Datafield op BTW
4) Klik op de textbox txtEHprijs. Zet Datasource op Data1 en Datafield op EHprijs
5) Onderstaande code is voor de knop cmdOK bedoeld:
Code:
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Let op! Mogelijkerwijs zal "Text1.Text" bij jou anders
'heten. Text1.Text dient hier als een zoekstring.
If (KeyAscii = 13) And (Text1.Text <> "") Then
Text1.Text = Trim(Text1.Text)
Text1.Text = Val(Text1.Text)
Data1.Refresh
Data1.Recordset.MoveFirst
Data1.Recordset.Index = "ID"
Data1.Recordset.Seek "=", Trim(Text1.Text)
If Data1.Recordset.NoMatch Then
MsgBox Text1.Text & " niet gevonden!"
Else
MsgBox Text1.Text & " gevonden!"
End If
End If
End Sub
6) runt het programma.
Opmerking:
Als je het programma runt, dan zie je dat de 4 textvelden het eerste
record van je database representeren. Wil je bv. dat de weergave v.d. 4
tekstvelden met het ID nummer 6 overeenkomt, dan voer je in het
(apart toegevoegde textveld) textveld een 6 en druk je vervolgens op
de Enter-toets.
Groet.
Dennis.
P.S. Ik zie dat je nog een vraag hebt:
Oplossing:
Maak de eigenschappen Datasource en Datafield v.d. 4 tekstvelden leeg. Dus,
1) Klik op de textbox txtCode en verwijder Data1 Van Datasource en verwijder ID van Datafield.
2) Klik op de textbox txtOmschr en verwijder Data1 Van Datasource en verwijder Omschrijving van Datafield.
enz........
De code voor de knop cmdOK vervang je met onderstaande code:
Code:
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Let op! Mogelijkerwijs zal "Text1.Text" bij jou anders
'heten. Text1.Text dient hier als een zoekstring.
If (KeyAscii = 13) And (Text1.Text <> "") Then
Text1.Text = Trim(Text1.Text)
Text1.Text = Val(Text1.Text)
Data1.Refresh
Data1.Recordset.MoveFirst
Data1.Recordset.Index = "ID"
Data1.Recordset.Seek "=", Trim(Text1.Text)
If Data1.Recordset.NoMatch Then
MsgBox Text1.Text & " niet gevonden!"
Else
Text2.Text = Data1.Recordset.Fields("ID")
Text3.Text = Data1.Recordset.Fields("Omschrijving")
Text4.Text = Data1.Recordset.Fields("BTW")
Text5.Text = Data1.Recordset.Fields("EHprijs")
MsgBox Text1.Text & " gevonden!"
End If
End If
End Sub
Is dit niet wat je bedoelt, omdat je via de 4 tekstvelden ook je database
wilt gaan manipuleren, dan moet je een aparte invoerscherm gaan gebruiken.
Vergeet niet, dat je met het DBgrid control veel kunt doen.