Hej! Vill du dölja den för hela rapporten eller för olika poster/rader? 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! Jag skulle använda OpenArgs för att skicka en parameter som talar om om den skall visa fältete eller inte: Vi hittade ett helt annat sätt att utforma rapporten på så det behövs ej att dölja / ta fram! Inte förlorar jag respekten för dig. MEn jag är lite nyfiken på hur du löste det? Nej det blev så att rapporten som skulle ut blev helt annorlunda. Det gjorde att inga fält behövs döljas!visa/dölja ett fält, beroende på en kryssruta i en tabell
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.Sv: visa/dölja ett fält, beroende på en kryssruta i en tabell
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
Tack
DanielSv: visa/dölja ett fält, beroende på en kryssruta i en tabell
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:
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:
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:
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
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
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 SvenssonSv: visa/dölja ett fält, beroende på en kryssruta i en tabell
Sv:visa/dölja ett fält, beroende på en kryssruta i en tabell
Alltså ingen "access-teknisk" lösning :)