MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 09.10.2019, 16:04   #1
W1
MOF Profi
MOF Profi
Standard Acc2003 - Syntaxfehler

Hallo,
auf meinen Befehl erhalte ich die Information "Syntaxfehler im Abfrageausdruck".
Beide Felder sind Textfelder.
Code:

Dim strSQL As String
strSQL = "SELECT * FROM abfr_Adressen_3 "
strSQL = strSQL & "WHERE Vorname = '" & Me!KritFeld1 & "' AND Name = "
strSQL = strSQL & Me!KritFeld2
DoCmd.OpenReport "Bericht_Adressen_3", acViewPreview, , strSQL
Was ist falsch ?
Gruss Werner
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 16:15   #2
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
da fehlen noch Hochkomma.
Code:

Dim strSQL As String
strSQL = "SELECT * FROM abfr_Adressen_3 "
strSQL = strSQL & "WHERE Vorname = '" & Me!KritFeld1 & "' AND NachName = '"
strSQL = strSQL & Me!KritFeld2 & "'"
DoCmd.OpenReport "Bericht_Adressen_3", acViewPreview, , strSQL
"Name" als Feldname ist tabu. Name ist ein reserviertes Wort und darf nicht verwendet werden. Das musst Du ändern. Die Betonung liegt auf musst.
In den neueren Versionen von Access wird sogar ein Hinweis ausgegeben wenn Name als Feldname verwendet wird.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 16:22   #3
ebs17
MOF Guru
MOF Guru
Standard

Einen Fehler in der Abfrage könntest Du Dir verdeutlichen, wenn Du das Ergebnis von strSQL per Debug.Print anzeigen lässt. Dann siehst Du, was Du zusammengesetzt hast.

Vor allem würde ich aber sagen, dass OpenReport an der Stelle einen Filter sehen will, nicht eine komplette SQL-Anweisung.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 16:30   #4
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,

Zitat:

dass OpenReport an der Stelle einen Filter sehen will, nicht eine komplette SQL-Anweisung.

habe ich doch glatt übersehen. Aber Eberhard ist ja zur Stelle.
Und da ich das oben übersehen habe, hier die Änderung:
Code:

Dim strSQL As String
strSQL = "Vorname = '" & Me!KritFeld1 & "' AND NachName = '"
strSQL = strSQL & Me!KritFeld2 & "'"
DoCmd.OpenReport "Bericht_Adressen_3", acViewPreview, , strSQL
oder gleich so:
Code:

DoCmd.OpenReport "Bericht_Adressen_3", acViewPreview, , "Vorname = '" & Me!KritFeld1 & "' AND NachName = '" & Me!KritFeld2 & "'"
Und gleich noch ein Hinweis, wenn die Tabelle mit den Namen einen Primärschlüssel (Autowert) hätte (wie es sein sollte), könnte man sich eines der Kriterien sparen und die Hochkomma würden auch entfallen.
Außerdem würde beim 2. Fritz Müller das mit den Namen ohnehin nicht mehr funktionieren.

__________________

Gruß
Klaus
Office2016, Win10

Geändert von gpswanderer (09.10.2019 um 16:33 Uhr).
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:18   #5
W1
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Danke funktioniert.
Aber so wie die Suche ausgelegt ist wird nur ein Datensatz gesucht und an den Bericht geschickt.
Ziel war eigentlich in einem Formular Datensätze selektieren und diese dann in einem Bericht zu Drucken.
Wie stelle ich das an ?
Gruss Werner
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:23   #6
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
dann muss die Abfrage für den Bericht entsprechend gefiltert werden.
Wie wählst Du im Formular die zu druckenden Datensätze aus ?

Hast Du meine Hinweise zum Primärschlüssel und dem Feldnamen gelesen ?

Gerade wenn mehrere DS gedruckt werden sollen, so ist eigentlich die Verwendung des Primärschlüssels die einfachste Variante.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:27   #7
W1
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Geändert in: FamName
Primärschlüssel ist vorhanden.
Gibt es im Forum Beiträge zu diesem Thema ?
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:29   #8
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,

Zitat:

Primärschlüssel ist vorhanden.

Und warum verwendest Du diesen dann nicht?

Meine 1. Frage hast Du auch nicht beantwortet.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:46   #9
W1
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Benutze ein Endlosformular Nach der Aktualisierung des Suchfeldes Function:

Code:

Function setfilt()
    
    
    Dim where As String, frm As Form
    Set frm = Screen.ActiveForm
    On Error Resume Next
    Dim ct As Integer
    For ct = 1 To 16
       where = where & getwhere(frm("Value" & LTrim$(Str$(ct))).Tag, frm("Value" & LTrim$(Str$(ct))))
    Next
    If where <> "" Then
       where = MID(where, 6)
       frm.RecordSource = "Select * from " & frm.Name & " Where " & where & ";"
    Else
       frm.RecordSource = frm.Name
    End If
    
    Forms!AbfrMischfarben_FML_2!Value7.SetFocus
    
End Function
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 17:53   #10
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
ich habe ohne Erklärung keine Ahnung was Du da machst.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 18:03   #11
W1
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Code:

  'This function is used to provide ad-hoc filtering on a form.
    'A set of unbound criteria fields should be present on the header part
    'of the form and named as Value1, Value2, etc. The Tag property of each
    'of the criteria fields should be set to the name of the field on which
    'the criteria is to act, e.g. if the Value1 field was to serve as the criteria
    'for the Surname field on the form, enter [Surname] in the Tag property for
    'the Value1 field. No quotes are required.

    'To use the function, simply enter =SetFilt() in the AfterUpdate property of
    'each of the unbound criteria fields. This will cause requerying of the entire
    'recordset after changes to any field. Alternatively, simply call =SetFilt() from
    'the OnClick event for a button should you prefer requerying after all the
    'criteria has been added.

    'The function allows up to 12 criteria fields to be entered. The only constraint
    'is that the name of the form must be the same name as the underlying recordset.
    'This can be resolved by basing the form on a query with the same name as the form.

    'All criteria will be evaluated as strings by the function, and wildcards will be
    'applied automatically. However, if you force the formatting of the criteria field
    'during data entry, e.g. as General Number or Date/Time, the correct field type
    'will be processed.

    'See the example, 'testform' provided.  Also, refer to the getwhere() function
    'if you need to modify the wildcard behaviour.

    'Note that this routine is set up for British date format, and automatically
    'converts dates to the US format required by the SQL parser.
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 18:04   #12
ebs17
MOF Guru
MOF Guru
Standard

Was willst Du hier dokumentieren, wenn Du hier aus dem Kalten einen Brocken vorwirfst, der aber auch rein gar nichts mit dem obigen Thema zu tun hat?
Wie wäre es, wenn Du erst ein paar Minuten nachdenkst, ehe Du hier schreibst?

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 18:19   #13
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
da bin ich jetzt raus.
Den englischen Text müsste ich auch erst mal verstehen.
Und wie Eberhard auch, sehe ich da keinen Zusammenhang.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 18:45   #14
W1
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hi ebs17,
Du hast recht das hat nichts mehr mit der Ausgangsfrage zu tun.
Aber Im Beitrag von gpswanderer wurde ich gefragt: "Wie suchst Du".
Darauf habe ich geantwortet.
W1 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.10.2019, 19:39   #15
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Ziel war eigentlich in einem Formular Datensätze selektieren und diese dann in einem Bericht zu Drucken.

Klappt denn der erste Teil Deines Anliegens? Deine Beschreibung dazu ist nicht vollständig.

Wenn es denn klappt, hast Du einen Filter erzeugt. Filter = der WHERE-Teil der SQL-Anweisung ohne das Schlüsselwort WHERE.

Wenn dann der Bericht die gleiche Datenherkunft hat wie das Endlosformular, musst Du nur beim OpenReport genau diesen Filter übergeben.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.