Avatar billede 49jensen Nybegynder
12. december 2008 - 14:47 Der er 22 kommentarer og
1 løsning

Filtrering af formular

Jeg har forgæves søgt at lave et filter til en formular.
Formularen har som postkilde en tabel med et givet antal felter, nogle som er udfyldte og et nogle som skal udfyldes.
Antallet af felter som skal udfyldes er ikke det samme i alle records.
I record no 1 skal der udfyldes f.eks. 10 felter.
I record no 2 skal der måske udfyldes 15 felter.
Mit spørgsmål er, kan det lade sig gøre i record no 1 kun at få vist de 10 felter i formularen som skal udfyldes
og i record no 2 få vist de 15 felter der skal udfyldes.
Avatar billede mugs Novice
12. december 2008 - 14:52 #1
Du kan sætte egenskaben Visible til False for de felter der ikke skal udfyldes. I formularens VedAktuel (Current):

Is Isnull(Me.feltnavn)then
Me.feltnavn.visible = False
else:
Me.feltnavn.visible = True
end if
Avatar billede mugs Novice
12. december 2008 - 14:52 #2
Is Isnull(Me.feltnavn)then -> If Isnull(Me.feltnavn) then
Avatar billede 49jensen Nybegynder
12. december 2008 - 15:32 #3
ok jeg prøver, kommer tilbage
Avatar billede 49jensen Nybegynder
12. december 2008 - 15:47 #4
Det virker tilsyneladende, men jeg får en fejl når jeg åbner formlen ( Compile error)
Det er denne del der halter:
-  Is Isnull(Me.feltnavn)then -> If Isnull(Me.feltnavn) then  -
Avatar billede 49jensen Nybegynder
12. december 2008 - 15:59 #5
Nej det virker ikke, det sletter feltet på alle records.
Avatar billede mugs Novice
12. december 2008 - 16:18 #6
Afprøvet og fungerer:

Private Sub Form_Current()
If IsNull(Me.Løbenr) Then
Me.Løbenr.Visible = False
Else:
Me.Løbenr.Visible = True
End If
End Sub

Men bruger du fortløbende formularer fungerer det ikke. Spørgsmålet hasr været rejst flere gange, og det kna du altså bare ikke.
Avatar billede 49jensen Nybegynder
12. december 2008 - 19:19 #7
Det virker ikke, valgte felt bliver slettet i alle records.
Koden indsættes i form under Current (aktuel).
Feltet (synligt=nej).
Feltnavn = Løbenr.
Er det korrekt?
Avatar billede mugs Novice
12. december 2008 - 19:24 #8
Løbenr er navnet på feltet i den db jeg har afprøvet.

Bruger du en fortløbende formular?
Avatar billede 49jensen Nybegynder
12. december 2008 - 21:37 #9
Nej. Der er noget som undrer mig, og det er, at der ikke er specificeret noget record nr.( post nr.)
Avatar billede mugs Novice
12. december 2008 - 23:11 #10
Hvad mener du med dette:

"at der ikke er specificeret noget record nr.( post nr.)"
Avatar billede 49jensen Nybegynder
13. december 2008 - 00:27 #11
Jeg mener at der ikke er noget der angiver hvilken post det drejer sig om.
Som jeg skriver i starten er der forskellige antal felter i posterne.
Avatar billede mugs Novice
13. december 2008 - 07:34 #12
"angiver hvilken post det drejer sig om"

Har vel ikke noget at gøre med antal felter i den aktuelle post. Poaten bliver normalt angivet et unikt felt (PK) i formularen.
M en jeg bliver mere og mere forvirret om, hvad du egentlig vil. Kan du sende din db eller lave et eksempel magen til der viser, hvad du vil, og sendde den som en .zip til:

mugs snabelting mail.dk
Avatar billede 49jensen Nybegynder
13. december 2008 - 15:54 #13
Med poster mener jeg record. Hver post(record) i formularen har en tilsvarende post( record) i tabellen. Hvis jeg i tabellens post1 har 5 felter som jeg ønsker at vise i formularens post1, og jeg kun har 3 felter i post2. hvordan undgår jeg at få vist 5 felter i formularens post2.
Sidste gang jeg skulle sende en db havde vi store problemer, som du nok husker.
Hvis ikke jeg udtrykker mig klart nok så må vi glemme det.
Avatar billede mugs Novice
13. december 2008 - 17:28 #14
"Hver post(record) i formularen har en tilsvarende post( record) i tabellen!" -> Ja - Ellers kan du jo ikke gemme data.

"post1 har 5 felter som jeg ønsker at vise i formularens post1, og jeg kun har 3 felter i post2" -> Som udgangspunkt har alle poster det samme antal felter idet jeg antager, at posterne kommer fra samme tabel.

Når du ikke bruger en fortløbende formular, må du jo bruge en formular der kun viser een post ad gangen. Og så fungerer min kode!

Jeg kan godt huske der var nogle problemner sidst, og så vidt jeg husker var det størrelsen på db der var galt med.
Avatar billede 49jensen Nybegynder
13. december 2008 - 17:36 #15
Hvis jeg går ind i egenskabsarket på formularen er egenskaben sat til enkeltformular, men jeg kan vælge poster på postvælger. Det er jo også derfor jeg siger at der i koden må være en postreference, men det er tilsyneladende ikke muligt.
Avatar billede mugs Novice
13. december 2008 - 17:47 #16
Med postvælger mener du så ikke Navigationsknapperne nederst til venstre?

Hver gang du skifter post, opnår formularen status af "Current" eller i danske versioner "VedAktuelt". Der ved bliver koden gennemløbet igen, og felter der er "Null" (tom streng) vil ikke blive vist. 

Jeg fastholder, at min kode fungerer, som jeg har forstået elle indlæggene. Jeg har afprøvet den i en testdb som jeg kan sende.
Avatar billede 49jensen Nybegynder
13. december 2008 - 19:37 #17
Jo, jeg mener navigationsknapperne. Jeg prøver lige igen. Vender tilbage.
Avatar billede 49jensen Nybegynder
13. december 2008 - 20:02 #18
Nu har jeg prøvet igen, og det virker ikke. De felter som ikke skulle være synlige i post1 er heller ikke synlige post2.
Jeg prøver at forklare en gang til, simpelt.
I tabelA har jeg jeg FeltA, FeltB, FeltC, FeltD og FeltE.
I tabel As post 1, vil jeg have informationer i felterne A, B og C, som jeg indtaster via formA post1.
I tabel As post 2, vil jeg have informationer i felterne A, B, C, D og E, som jeg indtaster i formA post 2.
Dette virker ok, det jeg spørger om er om jeg kan undgå at få vist felterne D og E, når åbner formA post1.
De koder jeg lægger ind i design går jo igen i alle poster. Det jeg mener er at der må jo ligesom være en reference til om vi er i post1 eller post2, eller er jeg helt forkert på den.
Avatar billede mugs Novice
13. december 2008 - 20:17 #19
"Det jeg mener er at der må jo ligesom være en reference til om vi er i post1 eller post2, eller er jeg helt forkert på den."

Du har jo også en slags reference, idet du i navigationsknapperne ser, hvilken post du står i. Men det er fuldstændig ligegyldigt, idet min kode gennemløbes hver gang du skifter post og måler om et givent felt har en Null-værdi.

Du skal ligeledes tænke på, at posterne i tabellen ligger i tilfældig rækkefølge, så den post der nu er nr. 1 er nr. sidst hvis du ændrer sorteringen fra stigende til faldende. Så glem alt om "post-reference". Af min kode kan du også læse, at der ikke er nogen reference til posten, men det er blot en kode der læser, og et givent felt er Null.

Jeg vil stadig gerne se et udsnit af din db. Slet alt uvedkommende, komprimer og zip.
Avatar billede 49jensen Nybegynder
13. december 2008 - 21:35 #20
har sendt db
Avatar billede mugs Novice
13. december 2008 - 23:59 #21
Formatet kan ikke genkendes.
Avatar billede 49jensen Nybegynder
14. december 2008 - 00:37 #22
Jeg har nu sendt den i access 2003.
Avatar billede mugs Novice
14. december 2008 - 01:13 #23
Db er returneret med det oprindelige forslag fra 12/12-2008 14:52:16.
Koden er afprøvet og fungerer her.
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