10. juni 2002 - 16:47Der 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?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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.
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.
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.
Jeg tror du mangler referencen til hovedformularen som underformularen befinder sig i: Forms!>---HOVEDFORMULARNAVN!---<[Biler Underformular]!Registreringsnr.SetFocus (Husk !-tegnet mellem de to formularer).
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."
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?
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.