Avatar billede dsjk Novice
10. juni 2002 - 16:47 Der er 7 kommentarer og
1 løsning

2 ting - Søgeknap & åben formular med data fra anden formular.

Jeg har 2 ting som jeg gerne vil have hjælp til.

Jeg har to formularer
- Kundeoplysninger
- Biler

I kundeoplysninger er der en underformular der viser enkelte oplysninger om alle biler der er tilknyttet kunden.
1. Jeg vil så gerne have at når man klikker på feltet "Registeringsnr" i underformularen lukkes formularen ned, og Biler formularen åbnes og viser alle de oplysninger der er om bilen.
Hvordan gøres det?

2. I formularen Kundeoplysninger vil jeg gerne have en knap som åbner et søgefelt hvor man kan indtaste et kundenr som den så finder. Jeg har prøvet at lave en, men feltet den søger på afhænger af hvor curseren står, og der skal det ikke.
Hvordan gøres det?

dsjk
Avatar billede itbjarne Nybegynder
10. juni 2002 - 17:20 #1
Hej,
vedr. 2: I koden til den knap som igangsætter søgningen skal du FØRST sætte fokus i det felt hvor du vil lave søgningen, DEREFTER lukke den aktuelle form, og til sidst søge efter recorden med optionen "onlycurrentfield" sat til TRUE.
Bemærk at formen lukkes FØR recorden findes.
---------------
DoCmd.FindRecord findwhat[, match][, matchcase][, search][, searchasformatted][, onlycurrentfield][, findfirst]
------------------

Eksempel fra et program jeg har lavet tidligere. SOP betyder Standard Operating Procedure, lstSOP er det SOP nummer (fra søgeformen) jeg søger efter, Forms!SOP!doc_id.SetFocus er feltet jeg søger i (i target formen), varSOP_Nr er en temp variabel som er nødvendig at bruge når jeg lukker formen før søgningen udføres.

Dim varSOP_Nr As String
varSOP_Nr = CStr(lstSOP)
Forms!SOP!doc_id.SetFocus
DoCmd.Close
DoCmd.FindRecord varSOP_Nr, , True, , True

Hope it makes sense.

I punkt 1 kan du benytte præcis samme fremgangsmåde.
Avatar billede hansk Nybegynder
10. juni 2002 - 17:45 #2
Prøv at anvende filter (by selection/by form), det er den nemmeste måde at søge på.

Hvis du gerne vil lukke kundeformularen ned når du får vist bil-formularen, kan du ved bil-formularens on-open-event indsætte kode der lukker kunde-formularen.
Avatar billede dsjk Novice
10. juni 2002 - 18:11 #3
itbjarne> ok, jeg er lige stået af, kan ikke helt følge med.
nr. 2 har jeg fået til at virke. Der kommer nu en standard popup hvor man taster det kundenr man vil søge efter ind og den søger nu kun i det felt, efter jeg satte focus på det først.
Men nr. 1????

Hovedformularen hedder Kundeoplysninger, under formularan med bilerne i hedder Biler Underformular, feltet som jeg trykker på hedder Registreringsnr og er i underformularen. Jeg skal have åbnet formularen Biler.

Jeg har rettet din kode så jeg har:
Private Sub Registreringsnr_Click()
  Dim varbil_id As String
  varbil_id = CStr(lstbiler)
  Forms![Biler Underformular]!Registreringsnr.SetFocus
  DoCmd.Close
  DoCmd.FindRecord varbil_id, , True, , True
End Sub

Men jeg får fejlen: ...kan ikke finder formularen "Biler Underformular", der refereres til i et makroudtryk eller Visual Basic-kode.

hvad er der galt?
Avatar billede itbjarne Nybegynder
10. juni 2002 - 18:48 #4
Jeg tror du mangler referencen til hovedformularen som underformularen befinder sig i: Forms!>---HOVEDFORMULARNAVN!---<[Biler Underformular]!Registreringsnr.SetFocus
(Husk !-tegnet mellem de to formularer).
Avatar billede dsjk Novice
10. juni 2002 - 18:54 #5
ok så hedder den:
Private Sub Registreringsnr_Click()
  Dim varbil_id As String
  varbil_id = CStr(lstbiler)
  Forms![Kundeoplysninger]![Biler Underformular]!Registreringsnr.SetFocus
  DoCmd.Close
  DoCmd.FindRecord varbil_id, , True, , True
End Sub


også får jeg fejl:
Kommandoen eller handlingen "Søgefterpost" er ikke tilgængelig nu."

dsjk
Avatar billede dsjk Novice
10. juni 2002 - 20:16 #6
ok, så virker det, den skulle hedde:
Private Sub Registreringsnr_Click()
  Dim varbil_id As String
  varbil_id = CStr(Registreringsnr)
  DoCmd.Close
  DoCmd.OpenForm "Biler"
  DoCmd.Maximize
  Forms![Biler]!Registreringsnr.SetFocus
  DoCmd.FindRecord varbil_id, , , acSearchAll, , acCurrent
End Sub


MEN, nu har jeg lige et tilløgsspm:

I formularen har jeg en knap der hedder tilføj Vogn, her går den over i Biler formularen og går til en ny record.
Men jeg vil gerne have at kundenr er udfyldt med det kundenummer som kunden havde hvor man trykkede på kanppen.
Jeg har fået smidt kundeid ned i en variabel, men hvordan får jeg den til at skrive det i feltet kunde_id under biler?

dsjk
Avatar billede dsjk Novice
10. juni 2002 - 20:49 #7
fandt løsningen.

tak for hjælpen.
Avatar billede itbjarne Nybegynder
10. juni 2002 - 22:40 #8
You'r welcome.
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