27. september 2005 - 21:19Der 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.
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
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)
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).
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
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.
>> 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)
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.
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.
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
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
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)
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
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.
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.