Gegevens in opzoekveld selecteren bij invoer nieuwe gegevens

Status
Niet open voor verdere reacties.

dirkdrent

Gebruiker
Lid geworden
3 jan 2006
Berichten
382
Ik heb een zoekveld gemaakt voor het opzoeken van contactpersonen. Wanneer ik de gegevens in het opzoekveld invoer vindt access de juiste contactpersoon met daarbij behorend de adres gegevens. Wanneer ik nu weer een contactpersoon wil opzoeken in het opzoekveld dan moet ik eerst de oude gegevens die in het opzoekveld weghalen. Dit doe ik dan door de gegevens te selecteren en hier dan over heen te typen.

Mijn vraag is:
Is het mogelijk wanneer ik opnieuw iets typ in het zoekveld ik de oude gegevens niet zie, of dat deze oude gegevens geselecteerd zijn en zodat ik er in 1x over heen kan typen i.p.v. zelf handmatig de tekst te selecteren.

Gr. Dirk
 
Je zou een knop "Opnieuw zoeken" kunnen toevoegen met deze code in de Bij Klikken gebeurtenis

Code:
Me.naamzoekveld= Null

FESTER
 
Je kunt bij de gebeurtenis klikken het veld leegmaken:

Me.veldnaam = Null

of je kunt bij de gebeurtenis klikken ervoor zorgen dat hij de gehele tekst selecteert:
Call Bepdat(me.naamveld)

In een algemene module:
Public Sub BEPDAT(Y As TextBox)
On Error GoTo ErrHandler
Dim i As Integer
With Y
i = Len(.text)
If i > 1 Then
.SelStart = 0
.SelLength = i
End If
End With
errhandlerexit:
Exit Sub

ErrHandler:
MsgBox Err.Number & "\" & Err.Description
Resume errhandlerexit

End Sub
 
Ik heb het volgende bij gebeurtenis: (klikken) neergezet...

Naam van mijn veld is Keuzelijst met invoervak70.

Dus heb ik de volgende regel neer gezet...

Me.Keuzelijst met invoervak70 = Null



Als ik dit ga testen, dan geeft access de volgende melding...

Kan de macro me niet vinden. De macro (of de bijbehorende macrogroep) bestaat niet, of de macro is nieuw en nog niet opgeslagen. Hier achter staat dan nog wat tekst...
Zou het bovenstaande misschien wat te maken hebben met het feit dat ik bij de gebeurtenis na bijwerken het volgende in de VB code heb staan:

Private Sub Keuzelijst_met_invoervak70_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[Id] = " & Str(Nz(Me![Keuzelijst met invoervak70], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub


Groetjes Dirk
 
Bij selecteren werkt ie echter niet. Wanneer ik in de code het volgende zet

Private Sub Keuzelijst_met_invoervak70_Click()
Call Bepdat(Me.Keuzelijst_met_invoervak70)

End Sub


Dan geeft hij de volgende melding al in het visual basic venster

Compileerfout:
Sub of function is niet gedefineerd.

Wat doe ik hier fout...???
 
Dat weet ik niet... Heb er een schermafbeelding bij gedaan.
 

Bijlagen

  • sub1.zip
    87,6 KB · Weergaven: 32
maak er dit maar van


Private Sub Keuzelijst_met_invoervak70_Click()

On Error GoTo ErrHandler
Dim i As Integer
With Y
i = Len(.text)
If i > 1 Then
.SelStart = 0
.SelLength = i
End If
End With
errhandlerexit:
Exit Sub

ErrHandler:
MsgBox Err.Number & "\" & Err.Description
Resume errhandlerexit
End Sub
 
Hij doet het nu wel, echter geeft ie een msgbox waarin staat "424\ opject vereist" wat wordt hier mee bedoeld?
 
klopt ja.

On Error GoTo ErrHandler
Dim i As Integer
With me.keuzelijst_met_invoervak70
i = Len(.text)
If i > 1 Then
.SelStart = 0
.SelLength = i
End If
End With
errhandlerexit:
Exit Sub

ErrHandler:
MsgBox Err.Number & "\" & Err.Description
Resume errhandlerexit
 
Hij werkt nu 100% top!

Is het selecteren ook mogelijk om dit voor meerdere velden tegelijk in te stellen i.p.v. 1 voor 1?
 
daar was ik al bang voor.

Daarom had ik er een public sub van gemaakt.
Maak een module aan en zet de oorspronkelijke sub call bepdat in die module.

Dan hoef je alleen maar per textbox te zetten
call bepdat(me.naamtextbox)

Gregor
 
modules kiezen en dan op nieuw.

Je moet overigens wel voor iedere textbox call bepdat.... zetten


Gregor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan