visa/dölja ett fält, beroende på en kryssruta i en tabell
Hej!
Jag vill visa eller dölja ett fält beroende på statusen på en kryssruta i tabellen som rapporten baseras på!
Hur går man tillväga då?
Hoppas ni förstår min frågeställning! :)
MVH
Daniel Svensson.
Svara
Sv: visa/dölja ett fält, beroende på en kryssruta i en tabell
Vill du dölja den för hela rapporten eller för olika poster/rader?
Svara
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
Jag har ett orderformulär, och då kan man kryssa i om en viss produkt ska vara med. Då vill jag att fältet med den produktbenämningen ska vara dold om inte kryssrutan är ikryssad!
Tack
Daniel
Svara
Sv: visa/dölja ett fält, beroende på en kryssruta i en tabell
Jag skulle använda OpenArgs för att skicka en parameter som talar om om den skall visa fältete eller inte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Private Sub PreviewReport_Click() On Error GoTo Err_PreviewReport_Click DoCmd.OpenReport "DocumentsReport" , acPreview, , , , ShowDescriptionCheckBox.Value Exit_PreviewReport_Click: Exit Sub Err_PreviewReport_Click: MsgBox Err.Description Resume Exit_PreviewReport_Click End Sub |
Lägg sedan till koden som döljer och visar kontrollerna:
1 2 3 4 5 6 7 8 9 | Private Sub Report_Open(Cancel As Integer ) If OpenArgs Then DocumentDescription.Visible = True DocumentDescription_Label.Visible = True Else DocumentDescription.Visible = False DocumentDescription_Label.Visible = False End If End Sub |
Det som kanske förvillade dig är att intelisens inte fungerar riktigt för kontroller i rapporter, dvs. att visable egenskapen inte dyker upp i listrutan. Det är bara att ignorera.
Denna lösning är bra ur den synpunkta att raporten inte känner till formuläret. Detta gör att man kan öppna rapporten i databasfönstret eller från vilket annat formulär som helst.
Om man vill göra en Ful lösning, vilket kommer innebär att jag tapparrespekten för dig om du implementerar den är:
1 2 3 4 5 6 7 8 9 10 11 | Private Sub Report_Open(Cancel As Integer ) Dim Form As Form_PreviewReport Set Form = Forms( "PreviewReport" ) If Form.ShowDescriptionCheckBox.Value Then DocumentDescription.Visible = True DocumentDescription_Label.Visible = True Else DocumentDescription.Visible = False DocumentDescription_Label.Visible = False End If End Sub |
Anledningen till att jag typar formulärvariablen, Form_PreviewReport istället för bara Form. Är för att jag vill få kompileringsfel om jag byter namn eller tar bort kontrollen.
En ännufulare läsning är:
1 2 3 4 5 6 7 8 9 | Private Sub Report_Open(Cancel As Integer ) If ( "PreviewReport" ).ShowDescriptionCheckBox.Value Then DocumentDescription.Visible = True DocumentDescription_Label.Visible = True Else DocumentDescription.Visible = False DocumentDescription_Label.Visible = False End If End Sub |
Svara
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
Vi hittade ett helt annat sätt att utforma rapporten på så det behövs ej att dölja / ta fram!
Men du ska ha stort tack för din hjälp!
Hoppas du inte tappar respekten för mig även för detta ;)
MVH
Daniel Svensson
Svara
Sv: visa/dölja ett fält, beroende på en kryssruta i en tabell
Inte förlorar jag respekten för dig. MEn jag är lite nyfiken på hur du löste det?
Svara
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
Nej det blev så att rapporten som skulle ut blev helt annorlunda. Det gjorde att inga fält behövs döljas!
Alltså ingen "access-teknisk" lösning :)
Svara