Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Ich Hab ein Problem mit einer Abfrage von Access zu SQL Server 2022

Begonnen von Lemmy2902, Februar 05, 2025, 08:54:11

⏪ vorheriges - nächstes ⏩

Lemmy2902


Lemmy2902

Zitat von: Lemmy2902 am Februar 05, 2025, 13:58:59Was soll ich in hochkommer stellen den text
[Formulare]![frmProjekteVerwaltung]![txtJahr] Steh da jetzt auf den Schlauch ..

Private Sub Form_Load()
 With Me.cmbJahr
    .AddItem "2024"
    .AddItem "2023"
    .AddItem "2025"
 End With
 
End Sub

Private Sub cmbJahr_Change()
    Select Case cmbJahr.Value
Case Is = "2024": txtJahr.Value = "2024"
Case Is = "2023": txtJahr.Value = "2023"
Case Is = "2025": txtJahr.Value = "2025"
Case Else: txtJahr.Value = "Kein Kein Jahr Gewält"
End Select
ref
End Sub
so befülle ich und übergebe die werte dann an das textfeld Jahr dises übergebe ich dann der Filterfunktion

Bitsqueezer

Hallo,

zu Deinem VBA: Wenn Du doch schon eine Kombobox mit der Zahl hast, wozu befüllst Du dann noch ein Textfeld damit?
Und statt dieses umständlichen Select-Case-Konstruktes könntest Du auch einfach schreiben:
Me.txtJahr = Me.cmbJahrDas gehört auch nicht in den Change-Event (der nach jedem Zeichen aufgerufen wird, das Du tippst), sondern in den AfterUpdate-Event.

Wenn das Feld, das Du abfragen willst, ein Datumsfeld ist, kannst Du einfach "YEAR(Datumsfeld) = [Formulare]![frmProjekteVerwaltung]![txtJahr]" schreiben.

Es wäre aber hilfreicher, wenn Du die Abfrage auf SQL umschaltest und den gesamten Text dort hier hineinkopierst, denn "Abfrage zu komplex" hat sicher nichts mit diesem Filter zu tun.

Bei SQL Server ist der Joker zwar "%" statt "*", das gilt aber nur, wenn man T-SQL einsetzt, also z.B. eine Pass-Through-Abfrage oder eine Abfrage in VBA mit ADO formuliert.

Gruß

Christian


Lemmy2902

Also das Me.txtJahr = Me.cmbJahr ist gut aber in Abfrage bekomme ich eine Fehlermeldung " Interner Fehler"
"YEAR(proStartDatum) = [Formulare]![frmProjekteVerwaltung]![txtJahr]"

Lemmy2902

SELECT tblProjekte.projektID, tblProjekte.proNummer, tblProjekte.proBeschreibung, tblProjekte.proProjektGeschlossen, tblProjekte.proStartDatum, tblProjekte.DatumAenderung
FROM tblProjekte
WHERE (((tblProjekte.proStartDatum)="YEAR(proStartDatum) = [Formulare]![frmProjekteVerwaltung]![txtJahr]"));

MzKlMu

#21
Hallo,
versuche es so:
SELECT projektID
    ,proNummer
    ,proBeschreibung
    ,proProjektGeschlossen
    ,proStartDatum
    ,DatumAenderung
FROM tblProjekte
WHERE YEAR(proStartDatum) = [Formulare]![frmProjekteVerwaltung]![txtJahr]
Gruß Klaus


Lemmy2902


MzKlMu

Hallo,
ZitatAls Abfrage?
Das ist jetzt aber eine eigenartige Frage, was soll das sonst sein, als eine Abfrage ?
Die Abfrage ist nur leserlich formatiert.
Gruß Klaus

MzKlMu

Hallo,
zeige bitte jetzt noch mal die Abfrage (SQL). Das sollte eigenlich logisch sein, dass man die Abfrage immer zeigt. Wie sonst soll man Fehler finden ?
Und wie führst Du diese aus ?

Gruß Klaus

Lemmy2902

SELECT tblProjekte.projektID, tblProjekte.proNummer, tblProjekte.proBeschreibung, tblProjekte.proProjektGeschlossen, tblProjekte.proStartDatum, tblProjekte.DatumAenderung
FROM tblProjekte
WHERE (((tblProjekte.proStartDatum)="WHERE YEAR(proStartDatum) = [Formulare] ! [frmProjekteVerwaltung] ! [txtJahr]"));

MzKlMu

Hallo,
die gezeigte Abfrage entspricht nicht meiner Abfrage in #21.
Die Whereklausel ist komplett falsch.
Und wie du die Abfrage ausführst hast du auch nicht verraten.
Gruß Klaus

Bitsqueezer

Hallo,

wenn Du doch gesehen hast, wie eine Abfrage in SQL aussieht und Du bekommst eine geänderte Abfrage, ebenfalls in SQL, wieso gibst Du dann den WHERE-Teil im Abfragedesigner ein statt die SQL-Abfrage im SQL-Editor zu ersetzen?

Was denkst Du, wenn Du diese Zeile liest?
WHERE (((tblProjekte.proStartDatum)="WHERE YEAR(proStartDatum) = [Formulare] ! [frmProjekteVerwaltung] ! [txtJahr]"));
2x WHERE? Startdatum = Text in Anführungszeichen? Text ist "WHERE..."? Macht Dich das so gar nicht stutzig?
So ein bißchen nachdenken sollte man vielleicht auch.

Darüber hinaus hat Klaus je ein Leerzeichen vor und nach "!" zuviel, die müssen auch raus.

Ich würde eine Abfrage auch immer mit Tabellenalias qualifizieren, auch als Prefix für jedes Feld, aber ich traue mich ja schon nicht, das zu schreiben, da Du den Hinweis vermutlich auch nicht verstehen/umsetzen könntest.

Gruß

Christian

MzKlMu

Hallo,
@christian
die Leerzeichen fügt der SQL Formatierer immer wieder automatisch ein und manchmal vergesse ich die dann zu löschen. Habe es jetzt aber nachgeholt.
Gruß Klaus