Avatar billede r_becker Novice
25. september 2002 - 20:11 Der er 26 kommentarer og
1 løsning

forespørgsel i en formular

hvordan kan lave en forespørgsel i en formular
jeg ville gerne have det til at virke på den måde at man i et felt skal intaste feks kundenr, også så skulle forespørgslen gerne komme med nogle data på denne kunde.
25. september 2002 - 20:27 #1
Der er mange måder at gøre det på.

èn af de lidt mere simple måder er at lave en formular baseret på din kundetabel eller en forespørgsel, som du selv designer.
Dernæst kan du lave en ubundet tekstboks (f.eks. kaldet "søgKundenr"), hvor du lægger denne kode på AfterUpdate

Private Sub søgKundenr_AfterUpdate()
  ME!Kundenr.Setfocus
  Docmd.Findrecord Me!søgKundenr
End sub

Dvs at hver gang du indtaster et kundenr i tekstboksen, så spoler den frem til den aktuelle post.

/Thomas
Avatar billede mugs Novice
25. september 2002 - 20:28 #2
Dette er ikke helt eksakt svaret på dir spørgsmål, men en procedüre der finder en post der matcher et indtastet værdi i en inputbox. Arbejder lidt på det andet.

Dim SQLstr As String
Dim Felt1 As String
Dim MSG As String
Dim Svar As Integer
Dim Ctrl As Control
DoCmd.GoToControl "Felt1"
Felt1 = InputBox(Prompt:="Indtast strengen du søger:" & vbNewLine & vbNewLine, Title:="Find tekststreng")
Me.RecordsetClone.FindFirst "Felt1=  '" & Felt1 & "'"
While Me.RecordsetClone.NoMatch = True
If Me.RecordsetClone.NoMatch = True Then
Svar = MsgBox(Prompt:="Den søgte tekststreng findes ikke", Title:="Søgningen lykkedes ikke")
Exit Sub
End If
Me.RecordsetClone.FindFirst "Felt1=  '" & Felt1 & "'"
Wend
Me.Bookmark = Me.RecordsetClone.Bookmark
For Each Ctrl In Me
If Ctrl.Tag = "Tekst" Then
If Ctrl <> "" Then
SQLstr = SQLstr & "[" & Ctrl.Name & "] = '" & Ctrl & "' And "
End If
ElseIf Ctrl.Tag = "Tal" Then
If Ctrl <> "" Or Not IsNull(Ctrl) Then
SQLstr = SQLstr & "[" & Ctrl.Name & "] = " & Ctrl & " And "
End If
End If
25. september 2002 - 20:29 #3
Hej Mugs....det ligner til forveksling noget kode jeg har lavet i sin tid :o)
Avatar billede mugs Novice
25. september 2002 - 20:29 #4
der var svaret!
25. september 2002 - 20:30 #5
i hvert fald den sidste del med Tag = tal eller tekst ;o)
Avatar billede mugs Novice
25. september 2002 - 20:32 #6
Hej Thomas - det er nok ikke nogen tilfældighed. Det er jo een af de gode ting her på siden:

Lær af dem du kan lære af, og giv ellers din viden til dem der vil lære!
25. september 2002 - 20:35 #7
Mugs-> lige præcis :o)

Det var skam heller ingen bebrejdelse! Jeg har bare selv udtænkt koden, så derfor kunne jeg genkende den med det samme.
Det er kun rart der er nogen, som kan drage lidt nytte af det man skriver :o)
Avatar billede mugs Novice
25. september 2002 - 20:53 #8
thomas > Din kommentar er heller ikke opfattet som en bebrejdelse. Der er da heldigvis stadig kategorier her på eksperten, hvor man kan give et bidrag til debatten uden, at man bliver beskyldt for både at stjæle, snyde og bedrage.

For ikke så længe siden besvarede jeg et spørgsmål, og havde derefter en længere korrespondance med brugeren, der ansete mig for at være noget nær verdensmester i Access.
Der måtte jeg skuffe ham og erkende, at for hvert spørgsmål jeg besvarer, bliver jeg "jordet" i 10 spørgsmål af nogle få "superbrugere", fra hvilke jeg med god samvittighed "stjæler" kodeeksempler med både arme og ben.

Disse eksempler som både du, terry, nih og et par andre kommer med, har gjort mit daglige arbejde væsentlig nemmere.

Og tak for det ;o)
Avatar billede r_becker Novice
25. september 2002 - 22:11 #9
hej Thomas jeg har prøvet at lave det i det første eks. men jeg får en fejl kode der lyder "run time error 2137 du kan ikke bruge søg eller erstat."
jeg har lavet en forespørgsel med kundenr návn adr osv
som kriterie har jeg ved kundenr sagt [forms].[kundepleje]![Kundenr] og min kode ser sådan ud.    Private Sub Kundenr_AfterUpdate()
                          Me!kundenr.SetFocus
                          DoCmd.FindRecord Me!kundenr
                          End Sub
Avatar billede mugs Novice
25. september 2002 - 22:16 #10
Jeg tror ikke du skal lave en forespørgsel, Thomas finder kundenr i den aktuelle formular.
Avatar billede mugs Novice
25. september 2002 - 22:18 #11
Hvis du vil arbejde med forespørgsler skal dit kriterie se således ud:

=[Forms]![kundepleje]![Kundenr]

Det er dog ikke afprøvet.
25. september 2002 - 22:18 #12
Din forespørgsel skal ikke have nogle kriterier.

Din formular skal så være bundet til denne forespørgsel.
Avatar billede r_becker Novice
25. september 2002 - 22:19 #13
mugs
skal jeg ikke lave min formular ud fra en forespørgsel eller har jeg bare misforstået noget......(o;
25. september 2002 - 22:21 #14
Din forespørgsel skal ikke have nogle kriterier.

Din formular skal være bseret på denne forespørgsel.
Avatar billede mugs Novice
25. september 2002 - 22:22 #15
Jo du skal have en forespørgsel, se Thomas sidste kommentar. indrømmet min kommentar var ikke særlig klart formuleret, men du skal ikke have kriterier i både formular og forespørgsel.
Avatar billede mugs Novice
25. september 2002 - 22:23 #16
De'herrer - Nu blander jeg mig uden om. For mange kokke o.s.v.
Godnat.
Avatar billede r_becker Novice
25. september 2002 - 22:27 #17
thomas
nu har jeg slettet mine kriterer i min forespørgsel
skal jeg have kundenr med i min forespørgsel
25. september 2002 - 22:31 #18
jep...du skal have kundenr med i forespørslen og du skal have kundenr-feltet på formularen (sammen med alle de andre felter, som du ønsker at vise)
Avatar billede r_becker Novice
25. september 2002 - 22:41 #19
jeg får stadigvæk fejlkoder.
jeg laver en formular via guiden hvor jeg vælger min forespørgsel.
hvor jeg har.
kundenr. navn. adr. osv
denne forespørgsel har jeg lavet som et dataark.
derudover laver jeg et ubundet tekstfelt som hedder  kundenr.
hvortil jeg skriver koden.
private Sub Kundenr_AfterUpdate()
  Me!kundenr.SetFocus
  DoCmd.FindRecord Me!kundenr
End Sub
25. september 2002 - 22:45 #20
Den ubundne tekstboks skal IKKE hedde Kundenr, da navnet Kundenr er reserveret til det bundne felt Kundenr fra forespørgslen.

Kald i stedet den ubundne tekstboks for f.eks. "søgKundenr"

Kontroller at egenskaben "Ved Efter Opdatering" på den ubundne tekstboks viser "(Hændelsesprocedure)"

Derefter skal koden se således ud:
private Sub søgKundenr_AfterUpdate()
  Me!kundenr.SetFocus
  DoCmd.FindRecord Me!søgkundenr
End Sub
Avatar billede r_becker Novice
25. september 2002 - 22:51 #21
nu får jeg denne fejl meddelse.
en makro der er angivet til en af egenskaberne for det aktuelle felt lykkes ikke pga en fejl i argumentet til handlingen SøgEfterPost.
25. september 2002 - 22:54 #22
kan du ikke sende den til mig? Det er ganske givet et eller andet objekt, som ikke er navngivet korrekt eller lign.

Så får du den tilbage 1 minut efter
tj@makeiteasy.dk
25. september 2002 - 23:14 #23
well...time to go to bed.
Du kan stadig sende den og jeg vil kigge på den i morgen tidlig.

'nat :o)
Avatar billede r_becker Novice
25. september 2002 - 23:22 #24
okej
jeg tror nok jeg har fået den til at virke men sender den lige alligevel.kan man ikke få den til kun at vise den post man søger
Avatar billede r_becker Novice
25. september 2002 - 23:23 #25
okej tak skal du have for din talmodighed
Avatar billede fynbohans Nybegynder
26. september 2002 - 11:40 #26
Hvis ikke du skal bruge formularen til andet end at vise oplysninger om et bestemt
kundenr. kan du nøjes med forespørgslen og gøre den til en parameterforespørgsel.
Under kriterier skriver du bare [      ] og du vil blive spugt om Kundenr når du kører
forespørgslen. Du kan også tilføje en tekst,  f.eks.  [ "Kundenr. ? "  ]
Avatar billede r_becker Novice
26. september 2002 - 20:37 #27
hej Thomas
mange tak for din hjælp og talmodighed i går. det var lige hvad jeg skulle bruge i denne omgang.
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