Sorteren in keuzelijst

  • Onderwerp starter Onderwerp starter Risk
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Michel,

Inmiddels dit werkend, alleen niet in de keuzelijst.

foto3.jpg

De syntax error blijft.

Risk
 
1) je sorteert niet op Maandnr, dus je keuzelijst doet dat ook niet
2) wat is nu de rijbron van de keuzelijst?
 
Michel,

Dit is de rijbron:

Code:
SELECT DISTINCT Format([Schadedatum];"mmm") As Maandnm, Month([Schadedatum]) As Maandnr FROM [Query1] ORDER BY Maandnr;

de naam:
Code:
cboMaandnm

Risk
 
En je hebt het veld [Schadedatum] in query1 zitten, neem ik aan?
 
Wat is de foutmelding, en wat zijn de instellingen van de keuzelijst?
 
Michel,

De foutmelding:

foutquery.jpg

Instelling in rijbron:
Code:
SELECT DISTINCT Format([Schadedatum];"mmm") As Maandnm, Month([Schadedatum]) As Maandnr FROM [Query1] ORDER BY [Maandnr];

naam: cboMaandnm


Veld in de query
Code:
Maandnm: Format([Schadedatum];"mmm")

De code in de query werkt perfect, alleen in de keuzelijst niet.

Zover ik zie is alles netjes gecodeerd.

Ik leer wederom graag.

Risk
 
Ik snap dit niet:
Veld in de query
Code:
Maandnm: Format([Schadedatum];"mmm")[/QUOTE]
Waar komt dat vandaan? Of is dat een herhaling van wat er in je query staat? Als de query werkt ligt daar het probleem niet. Vandaar dat ik naar de instellingen van de keuzelijst vroeg.
 
Michel,

De melding komt als ik op de keuzelijst klik.

De Query werkt prima. Schadedatum wordt keurig omgezet naar maand zowel volledig uitgeschreven als afkorting en de maandnummers staan er naast.

query.jpg

De instellingen van de lijst. De eigenschappen zie vorig bericht.

De code:

Code:
Option Compare Database

Private Sub cboMaandnm_AfterUpdate()
Call FilterMaken
End Sub
Private Sub cboMaandnr_AfterUpdate()
Call FilterMaken
End Sub
Private Sub cboplanner_AfterUpdate()
Call FilterMaken
End Sub

Private Sub cboJaar_AfterUpdate()
Call FilterMaken
End Sub


Private Sub cboLadingsoort_AfterUpdate()
Call FilterMaken
End Sub

Private Sub cboKenteken_AfterUpdate()
Call FilterMaken
End Sub


Function FilterMaken()
Dim sFilter As String


If Me.cboJaar & "" <> "" Then
    sFilter = "[Jaar]=" & Me.cboJaar
    If Me.cboMaandnm & "" <> "" Then
        sFilter = sFilter & " AND [Maandnm] = '" & Me.cboMaandnm & "'"
    End If
Else
    If Me.cboMaandnm & "" <> "" Then
        sFilter = "[Maandnm] = '" & Me.cboMaandnm & "'"
    End If
End If

 If Me.cboMaandnr & "" <> "" Then
        sFilter = "[Maandnr] = '" & Me.cboMaandnr & "'"
    End If
End If


If Me.cboPlanner & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Planner] = '" & Me.cboPlanner & "'"
End If

If Me.cboKenteken & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Kenteken] = '" & Me.cboKenteken & "'"
End If


If Me.cboLadingsoort & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Ladingsoort] = '" & Me.cboLadingsoort & "'"
End If



If sFilter <> "" Then
    Me.Filter = sFilter
    Me.FilterOn = True
Else
    Me.Filter = ""
    Me.FilterOn = False
End If

End Function




Private Sub Knop405_Click()

stDocName = "Rapport analyse planner"
Dim sFilter As String
If Me.cboJaar & "" <> "" Then
    sFilter = "[Jaar]=" & Me.cboJaar
    If Me.cboMaandnm & "" <> "" Then
        sFilter = sFilter & " AND [Maandnm] = '" & Me.cboMaandnm & "'"
    End If
Else
    If Me.cboMaandnm & "" <> "" Then
        sFilter = "[Maandnm] = '" & Me.cboMaandnm & "'"
    End If
End If

If Me.cboMaandnr & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Maandnr] = '" & Me.cboMaandnr & "'"
End If

If Me.cboPlanner & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Planner] = '" & Me.cboPlanner & "'"
End If

If Me.cboKenteken & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Kenteken] = '" & Me.cboKenteken & "'"
End If

If Me.cboLadingsoort & "" <> "" Then
    If sFilter <> "" Then sFilter = sFilter & " AND "
    sFilter = sFilter & "[Ladingsoort] = '" & Me.cboLadingsoort & "'"
End If

DoCmd.OpenReport stDocName, acViewPreview, , sFilter

End Sub

Meer mogelijkheden heb ik niet.

Risk
 
Je snapt niet helemaal wat ik bedoel; een keuzelijst heeft een heleboel eigenschappen, maar jij geeft er maar één (Rijbron). Aangezien die deugt, en de keuzelijst niet werkt, ligt het aan andere eigenschappen.
 
Overigens klopt dit niet: sFilter = "[Maandnr] = '" & Me.cboMaandnr & "'". Maandnr is een getal, geen tekst.

Code:
If Me.cboMaandnr & "" <> "" Then
        sFilter = "[Maandnr] = " & Me.cboMaandnr 
End If
End If
 
Michel,

Dan heb ik deze nog:

Afhankelijke rijbron 1
Alleen lijst nee
Bewerken lijst met waarden toestaan: ja
waarde lijst overnemen: ja
alleen rijbronwaarden overnemen: neen
ingeschakeld: ja
vergrendeld: nee
Autouitbreiden: ja

Verander gelijk de code.

Risk
 
Je gebruikt dus het veld [Maandnm] voor verdere verwerking? Dat is wel een tekstveld...
Overigens zie ik nog steeds niet alles wat ik wil zien; er zijn meer eigenschappen ;)
Bijvoorbeeld: aantal kolommen in je rijbron.
 
De eigenschappen zie de knipjes.

query3.jpgquery2.jpg

Maandnm (van Maandnaam) is tekst. De weergave is ook tekst.

Met groet,

Risk
 
Je gebruikt 1 kolom, en hebt twee velden. Drie keer raden wat je aan moet passen :)
 
Alles op 2 kolommen gezet, en je raad het al: werkt niet". De syntaxerror met de verwijzing naar de query-expressie Format([Schadedatum];"mmm) blijft komen. In de keuzelijst staat helemaal niets.

Risk.
 
Zonder de db ben ik uitgekakt, vrees ik.
 
Ik denk ik ook.

Zal e.e.a. eens opnieuw maken en kom er op terug.

Raar, alles doet het.

Dank tot zover.

Risk
 
Michel,

Ik heb even wat geknipt en geplakt. Als ik de code bij gebeurtenis er in plak doet de restknop het niet meer.

Bekijk bijlage Helpmij.rar

De foutmelding zit er in.

Hoop dat je ziet wat er fout gaat.

Risk
 
Probeer het eens met deze rijbron:
Code:
SELECT DISTINCT Format([Schadedatum],"mmm") AS Maandnm, Month([Schadedatum]) AS Maandnr FROM Schadedatum ORDER BY Month([Schadedatum]);
Bij mij werkt-ie dan.
Een aanpassing die ik 4 dagen geleden overigens al aangaf...
Nooit letterlijk kopieëren ;)
Je had je keuzelijst gebaseerd op een query, waarin je het veld [Maandnm] hebt gemaakt. Je moet in die query een veld Maandr toevoegen, of de keuzelijst baseren op de tabel waarop je query1 (verhelderende naam overigens ;) ) hebt gebaseerd. Omdat ik die tabelnaam niet heb/weet, heb ik query1 maar laten staan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan