Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Fehlermeldung 3464

Begonnen von Annett, Februar 18, 2025, 14:15:14

⏪ vorheriges - nächstes ⏩

Annett

Hallo zusammen,

ich habe für meine Produkte eine Datenbank erstellt und möchte als Bericht die Datenblätter als pdf Dateien. Bisher hat das reibungslos geklappt, aber bei einem Produkt erscheint immer Laufzeitfehler 3464 " Datentypenkonflikt in Kriterieauswahl"  und ich verstehe nicht warum. Könnt ihr mir helfen ? Das ist meine Programmierung dazu, die bei den anderen Produkten funktioniert , nur bei diesem nicht.

Private Sub PDFs_Click()
Dim strSQL As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strDatei As String, strWhere As String
    Set db = CurrentDb
    strSQL = "SELECT * FROM Produktmatrix_RegaLED"
    Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
    Do Until rs.EOF
        strDatei = "C:\Datenblätter\RegaLED_" & rs.Fields("Artikelnummer").Value & ".pdf"
        strWhere = strSQL & " WHERE Artikelnummer = '" & rs!Artikelnummer & "'"
        DoCmd.OpenReport "Produktmatrix_RegaLED", acViewDesign
        Reports!Produktmatrix_RegaLED.RecordSource = strWhere
        DoCmd.OpenReport "Produktmatrix_RegaLED", acViewPreview, , , acHidden
        DoCmd.OutputTo acOutputReport, "Produktmatrix_RegaLED", acFormatPDF, strDatei, False
        DoCmd.Close acReport, "Produktmatrix_RegaLED", acSaveNo
       
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

Debus

Hey, wo genau kommt der Fehler und wie heißt das Produkt. Vielleicht liegt da der Fehler wenn es bei anderen geht.

Holger

Annett

Hallo Holger,

das Produkt heißt RegaLED und die Daten kommen us Produktmatrix_RegaLED. Wo der Fehler herkommt, weiß ich leider nicht :(

Viele Grüße
Annett

Debus

1. beinhaltet Deine Artikelnummer ggf selbst Anführungszeichen?  Dann verändere die SQL wie folgt:

strWhere = strSQL & " WHERE Artikelnummer = """ & rs!Artikelnummer & """" mit doppelten Anführungszeichen


2. Wenn die Artikelnummer eine Zahl ist dann lass die Anführungszeichen weg

strWhere = strSQL & " WHERE Artikelnummer = " & rs!Artikelnummer

3. Füge mal eine Fehlerbehandlung zu Deinem Code damit es aussagekräftiger wird

On Error GoTo ErrorHandler

' Dein Code

Exit Sub

ErrorHandler:
MsgBox "Fehler " & Err.Number & ": " & Err.Description
Resume Next

Vielleicht hilft da ja was von

Holger

Annett

Jetzt bekomme ich die Fehlermeldung:Syntaxfehler in Abfrageausdruck "Artikelnummer"

Debus

Was hast du denn umgesetzt?

Auf jeden Fall schau Dir mal den Inhalt der Artikelnummern an

Holger

Vielleicht kannst Du ja mal die Tabelle hochladen

Annett

#6
Ich habe beide Varianten von Dir getestet.
Die Tabelle habe ich angefügt. Blatt 1

Annett

Er zeigt mir im Bericht übrigens alles richtig an, aber sobald ich die PDF Dateien erzeugen möchte, kommt das mit Laufzeitfehler

Debus

Kann es sein, dass Dein Datentyp nicht übereinstimmt. z.B.: einmal Integer einmal Long Integer oder einmal single einmal double ?

Annett

Davon habe ich leider überhaupt keine Ahnung. Was muss ich tun, um das zu kontrollieren ?

MzKlMu

Hallo,
ZitatWas muss ich tun, um das zu kontrollieren ?
Im Tabellenentwurf nachsehen.
Gruß Klaus

Annett

Genau das war der Fehler. Ich danke Euch vielmals :)

Knobbi38

Hallo Annett,

diese Zeilen
DoCmd.OpenReport "Produktmatrix_RegaLED", acViewDesign
Reports!Produktmatrix_RegaLED.RecordSource = strWhere
sind so noch nicht i.O. Den Report im Entwurfsmodus zu öffnen ist hier falsch und unnötig.
Richtig wäre, den SQL-Ausdruck fest als Datensatzquelle im Bericht einzutragen und dann das Kriterium
Artikelnummer = '" & rs!Artikelnummer & "'" als WhereCondition beim OpenReport mit anzugeben.

Gruß
Knobbi38