Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Annett am Februar 18, 2025, 14:15:14

Titel: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 14:15:14
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
Titel: Re: Fehlermeldung 3464
Beitrag von: Debus am Februar 18, 2025, 14:31:20
Hey, wo genau kommt der Fehler und wie heißt das Produkt. Vielleicht liegt da der Fehler wenn es bei anderen geht.

Holger
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 14:37:50
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
Titel: Re: Fehlermeldung 3464
Beitrag von: Debus am Februar 18, 2025, 14:54:32
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
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 15:02:51
Jetzt bekomme ich die Fehlermeldung:Syntaxfehler in Abfrageausdruck "Artikelnummer"
Titel: Re: Fehlermeldung 3464
Beitrag von: Debus am Februar 18, 2025, 15:07:39
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
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 15:15:07
Ich habe beide Varianten von Dir getestet.
Die Tabelle habe ich angefügt. Blatt 1
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 15:53:29
Er zeigt mir im Bericht übrigens alles richtig an, aber sobald ich die PDF Dateien erzeugen möchte, kommt das mit Laufzeitfehler
Titel: Re: Fehlermeldung 3464
Beitrag von: Debus am Februar 18, 2025, 15:58:23
Kann es sein, dass Dein Datentyp nicht übereinstimmt. z.B.: einmal Integer einmal Long Integer oder einmal single einmal double ?
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 15:59:19
Davon habe ich leider überhaupt keine Ahnung. Was muss ich tun, um das zu kontrollieren ?
Titel: Re: Fehlermeldung 3464
Beitrag von: MzKlMu am Februar 18, 2025, 16:02:18
Hallo,
ZitatWas muss ich tun, um das zu kontrollieren ?
Im Tabellenentwurf nachsehen.
Titel: Re: Fehlermeldung 3464
Beitrag von: Annett am Februar 18, 2025, 16:34:19
Genau das war der Fehler. Ich danke Euch vielmals :)
Titel: Re: Fehlermeldung 3464
Beitrag von: Knobbi38 am Februar 18, 2025, 17:32:17
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