Avatar billede t_jaeger Praktikant
27. september 2005 - 21:19 Der er 18 kommentarer og
2 løsninger

Automatik i formular

Jeg har en formular med medlemsnr., navn, start point og aktuel point. Der er knyttet en underformular til som bl.a. har dato.

Når jeg skal finde de forskellige personer bruger jeg postvælger, så det er frem og tilbage hele tiden. For tiden er der 300 poster og der kommer flere.

Spørgsmålet er nu, hvordan kan man få posten frem ved kun at skrive i feltet medlemsnr. Har prøvet med kombinationboks, men det udfylder/ændre ikke resten af felterne.
Avatar billede -anders- Juniormester
27. september 2005 - 21:35 #1
Du kunne sætte en ubunden tekstboks på din hovedformular, og så bruge denne som søgefelt til medlemsnr, men der er mange måder det kan gøres på, så lidt flere informationer ville være fint
Avatar billede -anders- Juniormester
27. september 2005 - 21:42 #2
Prøv evt. flg:

Opret en combobox på din hovedform, benyt guiden til dette, vælg muligheden "Søg efter en bestem post i formularen", vælg at medlemsnr skal være værdien.

Når du nu vælger et medlemsnr i comboen "springers" der til den post som svare til det medlemsnr du har valgt, og underformularen viser de poster der matcher. det er lidt svært at forklare, men det virker hvis din underformular er sat rigtigt sammen ifht. til din hovedformular (underordnet og overordnet felter)
Avatar billede -anders- Juniormester
27. september 2005 - 21:43 #3
Du kan også benytte en liste i stedet for en combo hvis du ønsker dette, fremgangsmåden er den samme
Avatar billede -anders- Juniormester
27. september 2005 - 22:05 #4
Her en mere præcis gennemgang:

1. Klik på din værktøjskasse når formen er i designvisning, sørg for at guiden er slået til (tryllestav)

2. Indsæt en combo på din hovedform.

3. Sæt bold i "søg efter post i formularen på basis af den værdi jeg har valgt i kombinationsboks"

4. klik på næste

5. Tilføj feltet medlemsnr, og klik på næste

6. Klik på næste igen

7. klik på udfør

Nu skulle du så komme automatisk frem til den post på hovedformen der svare til det valgte medlemsnr i comboen.

Under comboens efter opdatering (Afterupdate) , kan du se den kode der er automatisk genereret af guiden, den skulle se sådan ud:

Private Sub Kombinationsboks18_AfterUpdate()
    ' Søg efter den post, der svarer til kontrolelementet.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[KundeID] = " & Str(Nz(Me![Kombinationsboks18], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Avatar billede -anders- Juniormester
27. september 2005 - 22:10 #5
Du kan efterfølgende vælge flere kolonner i din combo feks. Navn, men det er altid den først kolonne (kolonne0)der virker som søgeværdien, vælger du flere kolonner skal du huske at definere i egenskabsarket for comboen (antal kolonner, kolonnebredder e.t.c).
Avatar billede -anders- Juniormester
27. september 2005 - 22:25 #6
Lige den sidste før sengetid :o)

Du kan naturligvis vælge flere kolonner når du køre guiden igennem, det gør ingen forskel, du skal blot være opmærksom på at der er den første kolonne (0)der tricker søgningen jvf. ovenstående kode
Avatar billede mugs Novice
27. september 2005 - 22:32 #7
Hmmm - er lidt uenig med aandersen, hvilket ikke betyder at Anders har uret :o)

Som udgangspunkt vil jeg bede dig kontrollere om din underformular er bundet til din mainform med feltet medlemsnr. det betyder, at din underformular altid vil vise de poster der er tilknyttet det medlemsnr der vises i din mainform.

Du finder disse egenskaber i underformularens egenskabsark i fanen data underordnede / overordnede felter. Du bør sætte dem til feltet medlemsnr. Herefter kan su bruge Access indbyggede søgefunktion til at finde et medlemsnr i mainform, hvorefter din subform vil vide de samme poster.

Efterfølgende kan du anvende en lidt mere avanceret og brugervenlig søgefunktion som anders har skitseret.
Avatar billede -anders- Juniormester
27. september 2005 - 22:39 #8
>> mugs,helt enig, det er først og fremmest vigtigt at main og subform spiller korrekt sammen før man udbygger med mere avanceret funktioner, det var jeg nok ikke lige opmærksom på da jeg svarede, så tak for støtten :o)
Avatar billede t_jaeger Praktikant
28. september 2005 - 00:29 #9
Jeg har kontrolleret main og underformular. Relateret på medlemsnr en-til-mange.
Der var lige lidt problemer med en forespørgelse.

Det virke.

For at tilføje nye medlemsnr er det så bedst at bruge "Ny post"?
Det kan jeg ikke rigtig få til at funke.
Avatar billede mugs Novice
28. september 2005 - 07:24 #10
Jeg går ud fra, at underformularen nu viser de poster der med medlemsnr er bunddet til din mainform. Du burde kunne oprette nye poster i din mainform blot ved at trykke på ikonet "Ny post". Er det dette der ikke fungerer? Eller prøver du at oprette nye poster i underformularen?

Hvilke fejlmeldinger får du. Udtrykket "Det kan jeg ikke rigtig få til at funke" siger os ikke så meget.

Vender tilbage når eksperten er oppe igen omkring middagstid - Forhåbentligt.
Avatar billede t_jaeger Praktikant
28. september 2005 - 17:36 #11
Det jeg ikke kunne få til at funke var hvorledes nye poste skulle laves, det ved jeg nu.

Nu er der kommer der en ny fejl, runtime error 3022, når jeg skriver et nummer som allerede er oprettet.
Min kode er:
Private Sub Kombinationsboks25_AfterUpdate()
    ' Søg efter den post, der svarer til kontrolelementet.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Medlemsnr] = " & Str(Me![Kombinationsboks25])
    Me.Bookmark = rs.Bookmark
End Sub

Kører jeg debug er fejlen på linien Me.Bookmark........

Der kommer også en popup Metoden Update eller CancelUpdate er brugt uden Addnew eller Edit.
Avatar billede mugs Novice
28. september 2005 - 17:52 #12
Private Sub Kommandoknap20_Click()
Dim VARa As Long
VARa = InputBox(Prompt:="Indtast medlemsnr.", Title:="Find medlem.", Default:="")
DoCmd.GoToControl "medlemsnr"
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True
End Sub
Avatar billede -anders- Juniormester
28. september 2005 - 20:01 #13
Hej, og velkommen til det nye eksperten.dk :o)

Den metode jeg forlsår til at finde et bestemt medlem udfra medlemsnr burde virke, jeg har testet det, og her køre det, så du må gøre et eller andet, well hvis du har mod på det er du velkommen til at sende db (som .zip), så vil jeg da gerne kikke på den.

Forslaget fra mugs 28/09-2005 17:52:23, fungere mindst lige så godt, så kan du få det til at virke er det fint. Du finder min mailadresse ved at klikke på mit brugernavn
Avatar billede mugs Novice
28. september 2005 - 20:35 #14
"Hej, og velkommen til det nye eksperten.dk :o)"

Indtil videre synes jeg nu ikke der er noget at råbe hurra for. Men lad os nu give det en chance.
Avatar billede t_jaeger Praktikant
28. september 2005 - 21:57 #15
Har sendt zip til aandersen.

>mugs  Jeg vil helst undgå kommandoknapper.

Er der sket noget nyt?
Avatar billede -anders- Juniormester
28. september 2005 - 22:14 #16
DB modtaget, kikker på den vender tilbage om ca 10 minutter, ja eksperten skulle være flyttet til en anden host, så de problemer der har været i den sidste tid skulle være løst :o)
Avatar billede -anders- Juniormester
28. september 2005 - 22:27 #17
Db rettet, og sendt retur, fejlen var at comboen var bundet til selve feltet Medlemsnr, har i stedet tilføjet feltet til formen, og gjort comboen ubunden
Avatar billede t_jaeger Praktikant
28. september 2005 - 22:36 #18
Tak for hurtigt arbejde. Nu ved jeg hvordan den skal virke. Udformningen finder jeg ud af. Jeg skal bare huske at nye skal ind via NY POST.

Der uddeles point
Avatar billede -anders- Juniormester
28. september 2005 - 22:40 #19
Ja, når du opretter nye poster vil comboen efter dette automatisk vise medlemsnummer for den nye post,når posten er gemt. Medlemsnr i din DB er en unik nøgle, derfor fik du fejl når du indatstede i comboen fordi den var bundet til feltet medlemsnr i tabellen, en unik nøgle (Primær nøgle) , kan ikke dublere.
Avatar billede -anders- Juniormester
28. september 2005 - 22:42 #20
Tak for point :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