Keuzelijst problemen

Status
Niet open voor verdere reacties.

ErikVet

Gebruiker
Lid geworden
16 mrt 2009
Berichten
6
Ik heb een formulier gemaakt met daarop een keuzelijst. Ik wil graag dat als er een keuze is gemaakt (en er op een knop geklikt wordt) dat er een rapport geopend wordt gefilterd met de waarde uit de keuzelijst.
Heb dit forum doorgespit, maar de voledige oplossing zit er niet bij. alles geprobeerd maar niets werkt (goed).

Dit is een van de codes die ik geprobeerd heb maar deze geeft een syntaxis fout (operator ontbreekt in query expresie)

Code:
  Dim stDocName As String
    Dim stLinkCriteria As String
    Dim strWhere As String
    
    stDocName = "Gebruiker met schepen Rapport per gebruiker"  [COLOR="Red"] 'rapport dat geopend moet worden[/COLOR]          
    If IsNull(Me.cbo_gebruiker) Then
       MsgBox ("Selecteer een gebruiker"), vbOKOnly, "Invoerfout"
    End If

    strWhere = "Afkorting gebr = '" & Me.cbo_gebruiker & "'"      [COLOR="red"]'De gemaakte keuze[/COLOR]
    DoCmd.OpenReport stDocName, acPreview, , strWhere

Ik heb het gevoel dat ik er dicht bij ben, maar heb nog een laatste zetje nodig.
Wie kan mij helpen?

Bij voorbaat dank
 
Laatst bewerkt door een moderator:
Hoi Erik,

Kan het niet helemaal bepalen maar denk dat je het veld Afkorting gebr" tussen [ ] moet zetten. Mocht dit niet lukken upload dan je database even..
 
Je spitwerk kan wat worden aangescherpt, want anders had je deze voorbeelden wel gevonden:

Code:
Dim stDocName As String, strSQL As String, sTabel As String, sDatum As Date, iDatum As Double
sDatum = CDate(Me.Leverdatum)
iDatum = CDbl(sDatum)
stDocName = "Fax naar JDV"
DoCmd.OpenReport stDocName, acViewDesign, , , acHidden
sTabel = Reports(stDocName).RecordSource
If InStr(1, UCase(sTabel), "WHERE ") > 0 Then
	strSQL = Left(sTabel, InStr(1, sTabel, "WHERE ") - 1)
Else
	If InStr(1, UCase(sTabel), "SELECT ") = 0 Then
		If InStr(1, sTabel, " ") > 0 And InStr(1, sTabel, "[") = 0 Then
			sTabel = "[" & sTabel & "]"
		End If
		strSQL = "SELECT * FROM " & sTabel & " "
	Else
		strSQL = sTabel
	End If
End If
strSQL = strSQL & " WHERE [Leverdatum]= cDate(" & iDatum & ")"
Reports(stDocName).RecordSource = strSQL
DoCmd.Close acReport, stDocName, acSaveYes
DoCmd.OpenReport stDocName, acViewPreview
Deze code kun je gebruiken als je de filtering hard achter een rapport wilt plakken. Handig bij emailen, waar een filtering niet zo jofel werkt.

Code:
Dim stDocName As String, sFilter As String
Dim sDatum As Date, iDatum As Double
sDatum = CDate(Me.Leverdatum)
iDatum = CDbl(sDatum)
stDocName = "Rapportnaam"
sFilter = " [Leverdatum]= cDate(" & iDatum & ")"
DoCmd.OpenReport stDocName, acViewPreview, , sFilter
Code:
Dim stDocName As String, sFilter As String
Dim iRecord As integer
iRecord = Me.txtRecordID.Value
stDocName = "Rapportnaam"
sFilter = "[RecordID]= " & iRecord
DoCmd.OpenReport stDocName, acViewPreview, , sFilter
Deze twee voorbeelden zetten een filtering op het rapport; de eerste met een datumconversie, de tweede met een RecordId als filtering.
Wil je filteren op een tekststring, dan wordt de filterregel:
Code:
sFilter = "[RecordID]= '" & iRecord & "'"

Succes!
 
Inderdaad, de [ ] waren het probleem, code werkt nu. :D

Jootje13 en OctaFish heel erg bedankt voor de super snelle reactie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan