PDA

Vollständige Version anzeigen : Access Datenbank auf SQL Server 2000 umstellen


<Werner1000>
25.02.2002, 19:51
In einer Access Datenbank (Office XP) rufe ich aus einem Formular einen Bericht mit dem aktuellen Datensatz auf.
Im Bericht ist die Datenherkunft durch folgenden SQL Code definiert:

SELECT Basis.ID_Auftrag, Basis.Bezeichnung, Projektbeziehung.Beschreibung

FROM Basis INNER JOIN Projektbeziehung ON Basis.ID_Auftrag = Projektbeziehung.ID_Auftrag

WHERE (((Basis.ID_Auftrag) Like [Formulare]![Projekt]![ID_Auftrag]));

Formular: Projekt
Bericht: Projektbeziehung

Bei der Portierung auf SQL Server 2000 mittels des Upsizing Assistenten erhalte ich eine Fehlermeldung.

Wie ist der Code zu verändern, damit eine Lauffähigkeit auf dem Server gegeben ist.

Sascha Trowitzsch
26.02.2002, 09:20
Der SQL-Server kennt deine Formulare nicht!
Den SQL-String musst du zusammensetzen:
Statt
Like [Formulare]![Projekt]![ID_Auftrag]))
>
Like '" & [Formulare]![Projekt]![ID_Auftrag] & "'))"

...falls ID_Auftrag ein String ist.

Ciao, Sascha

sqlfreaks
12.11.2003, 12:58
Hallo,
bin auf diesen Thread gestoßen, ich habe auch ein ähnliches Problem,
und müsste eigentlich von Dir, Sascha , nur wissen:

Bezüglich "...falls ID_Auftrag ein String ist.":
Was ist, wenn ID_Auftrag kein String, sondern Int ist? (So wie bei
mir der Fall)

Deine Lösung wäre für mich optimal nur wie kann man sie abwandeln, so dass es auch mit einer Spalte des Datentyps Int klappt?

Bitte bitte antworte, ich verzweifle sonst.

Gruß,
SQLFreaks

Sascha Trowitzsch
12.11.2003, 13:32
Reiner Zufall, dass ich drauf stoße...

Aber da der Werner seinerzeit keine Reaktion für nötig befunden hatte...

Wenn es kein String ist, sondern ein Integer, was soll dann die Funktion LIKE ?? Damit kann man nur Strings durchsuchen.

ich hatte dieses "falls ID_Auftrag ein String ist." nur deshalb hingeschrieben, weil sich der Feldbezeichner ganz und gar nicht nach einem Textfeld anhört.

So was wäre aber gültig:

"SELECT Basis.ID_Auftrag, Basis.Bezeichnung, Projektbeziehung.Beschreibung
FROM Basis INNER JOIN Projektbeziehung ON Basis.ID_Auftrag = Projektbeziehung.ID_Auftrag
WHERE Basis.ID_Auftrag = " & [Formulare]![Projekt]![ID_Auftrag]

Ciao, Sascha

sqlfreaks
12.11.2003, 13:38
Danke für die schnelle Antwort.

Irgendwie funzt es nicht, es kommt immer die Meldung:
"Syntaxfehler beim Konvertieren des varchar-Wertes 'Kunden-Code'(das ist mein Formularfeld) in eine Spalte vom Datentyp int."

Was kann ich da machen?

Sascha Trowitzsch
12.11.2003, 13:55
Ich blick's überhaupt nicht...

Ein varchar ist auch kein int !

Wie sie den dein SQL-String aus?