Avatar billede celal Nybegynder
02. august 2002 - 15:13 Der er 9 kommentarer og
1 løsning

Søgning i formular

Hvordan kan man sætte et felt til at være et søgefelt, dvs. når man skriver et kontonummer i feltet skal den hente posten.
Kontonummer i feltet er unik.
Avatar billede fdata Forsker
02. august 2002 - 15:38 #1
Opret en textbox, kald den f.eks. SeekThis.
I boksens EfterOpdatering hændelse skriver du:

' Hop til kontonr. og søg
Me.KontoNr.SetFocus
DoCmd.FindRecord SeekThis, acStart, , acSearchAll, , acCurrent
' Nulstil søgefelt igen
Me.SeekThis = ""
Me.SeekThis.SetFocus
Avatar billede celal Nybegynder
02. august 2002 - 16:13 #2
Hvorfor kan jeg ikke finde kontonr i  "Me.KontoNr.SetFocus" ? skal jeg have et felt der hedder KontoNr?
Avatar billede celal Nybegynder
02. august 2002 - 16:21 #3
Okay, nu virker det, men kan man ikke lave det uden at skulle bruge to af de samme felter (Seekthis og Kontonr)?
Avatar billede fdata Forsker
02. august 2002 - 16:34 #4
Du har jo det problem, at boksen KontoNr er bundet til feltet KontoNr i den underliggende tabel. Hvis du indtaster søgekriteriet direkte i KontoNr boksen, retter du jo den aktuelle kontos nr.
Du må i givet fald huske det korrekte nr. inden du "ødelægger" det.

Som regel vil man vel gerne undgå at ændre den aktuelle post blot for at søge.
Løsningen med et separat søgefelt virker vel også umiddelbart mere pædagogisk korrekt, eller hvad?
Avatar billede celal Nybegynder
05. august 2002 - 08:57 #5
Okay, Men jeg skal lige høre, Hvis der ikke findes nogen poster for det nummer som man indtaster, skal der komme en meddelelse om det. Hvordan kan jeg undersøge om "DoCmd.FindRecord SeekThis, acStart, , acSearchAll, , acCurrent" returnere en post?
Avatar billede fdata Forsker
05. august 2002 - 20:45 #6
Prøv den her:

Private Sub Felt1_AfterUpdate()
  Dim Krit As String
  Krit = Me.Felt1
  Me.Undo
  DoCmd.FindRecord Krit, acEntire, , acSearchAll, , acCurrent, True
  If Me.Felt1 <> Krit Then
    MsgBox "Ikke fundet"
  End If
End Sub
Avatar billede fdata Forsker
11. august 2002 - 22:58 #7
Hellooooo! Virkede det?
Avatar billede celal Nybegynder
27. august 2002 - 11:23 #8
Hej igen, undskyld at jeg først dukker op nu...Jeg har prøvet det du har givet mig, det første virkede godt, men det andet virkede ikke. Hvis vi nu kigger på det første kode som du gav mig, hvorsdan kan vi sætte en validering ind? Når der ikke er nogen post for det intastede kundeNr, så skal jeg have en meddelelse.
Avatar billede fdata Forsker
27. august 2002 - 17:10 #9
Welcome back. Hvad med:

' Hop til kontonr. og søg
Me.KontoNr.SetFocus
DoCmd.FindRecord SeekThis, acStart, , acSearchAll, , acCurrent
' Post fundet?
If str(Me.KontoNr) <> str(Me.SeekThis) Then
  MsgBox Me.SeekThis & " ikke fundet"
End If
' Nulstil søgefelt igen
Me.SeekThis = ""
Me.SeekThis.SetFocus

Hvorfor virkede løsning 2 i øvrigt ikke? Det kører da fint her.
Avatar billede celal Nybegynder
04. september 2002 - 12:02 #10
Tak for det...;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester