Juni 27, 2022, 14:10:08

Neuigkeiten:

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


Access Backend Migration auf SQL-Server 2019

Begonnen von TerracottaCSV, November 16, 2021, 14:44:02

⏪ vorheriges - nächstes ⏩

TerracottaCSV

November 16, 2021, 14:44:02 Letzte Bearbeitung: November 16, 2021, 14:50:02 von TerracottaCSV
Moin zusammen, wir haben testweise unser Backend, welches momentan noch in Access läuft, auf einen SQL-Server 2019 migriert. Jetzt haben alle Tabellen (im Access Frontend) einen Namen mit dbo_ am Anfang, muss ich jetzt wirklich jede Zeile Code und jedes Steuerelement welches einen Tabellennamen enthält umbennen? oder gibt es dafür ein Tool, welches das für mich erledigt?

Grüße

Edit: Backend wurde mit Microsoft SQL Server Migration Assistant migriert.

PhilS

Zitat von: TerracottaCSV am November 16, 2021, 14:44:02Jetzt haben alle Tabellen (im Access Frontend) einen Namen mit dbo_ am Anfang, muss ich jetzt wirklich jede Zeile Code und jedes Steuerelement welches einen Tabellennamen enthält umbennen? oder gibt es dafür ein Tool, welches das für mich erledigt?
Ja, so ein Tool gibt es. Es heißt Find and Replace und ist auch generell bei Entwicklung in Access eine große Hilfe.

Aber: Du kannst auch einfach die Tabellen umbenennen und das "dbo_" wieder entfernen.
Längerfristig würde ich dir empfehlen, die Tabellen per VBA einzubinden. Da kannst du bereits im Code definieren, wie der lokale Name deiner Tabellen lauten soll.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

TerracottaCSV

November 16, 2021, 16:15:05 #2 Letzte Bearbeitung: November 16, 2021, 16:19:29 von TerracottaCSV
Danke, das mit dem umbenennen ist so simpel darauf wäre ich nicht gekommen.

Das Tool gucken wir uns mal an.

TerracottaCSV

Ich habe noch eine Frage, wo genau muss ich dbSeeChanges einfügen, wenn der Debugger mir folgende Zeile markiert

    Set rs = db.OpenRecordset("SELECT Anmelden.ID, Anmelden.pID_F, Anmelden.aID_F, Anmelden.sID_F, Anmelden.Anmeldung FROM Anmelden WHERE 0")

Und folgenden Fehler anzeigt:
ZitatWenn Sie auf eine SQL Server-Tabelle zugreifen, die eine IDENTITY-Spalte enthält, müssen Sie für die OpenRecordset-Methode die dbSeeChanges-Option verwenden.
Ich verstehe nicht genau was eine IDENTITY-Spalte ist.

PhilS

Zitat von: TerracottaCSV am November 17, 2021, 11:07:18Ich habe noch eine Frage, wo genau muss ich dbSeeChanges einfügen, wenn der Debugger mir folgende Zeile markiert

[...]
Ich verstehe nicht genau was eine IDENTITY-Spalte ist.
dbSeeChanges gehört in das Options-Argument der OpenRecordset-Methode.

IDENTITY ist ein Attribut einer numerischen Spalte, analog zum AutoWert in Access.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

TerracottaCSV

Ich habe es jetzt so gemacht, ändert leider nichts.


markus888

Zitat von: TerracottaCSV am November 17, 2021, 11:07:18Ich habe noch eine Frage, wo genau muss ich dbSeeChanges einfügen, wenn der Debugger mir folgende Zeile markiert



Also ehrlich gesagt finde ich es dramatisch, wenn man nicht eigenständig dazu in der Lage ist in die Hilfe zu sehen. Da gibt es doch eine ganze Reihe unterschiedlicher Optionen.
Wie kann man nur programmieren, wenn man so im Blindflug unterwegs ist und die Grundlagen nicht versteht?
10 Jahre Access

TerracottaCSV

November 17, 2021, 13:19:09 #7 Letzte Bearbeitung: November 17, 2021, 13:34:12 von TerracottaCSV
ZitatAlso ehrlich gesagt finde ich es dramatisch, wenn man nicht eigenständig dazu in der Lage ist in die Hilfe zu sehen. Da gibt es doch eine ganze Reihe unterschiedlicher Optionen.
Wie kann man nur programmieren, wenn man so im Blindflug unterwegs ist und die Grundlagen nicht versteht?

Guck dir #5 an bevor du hier so einen Mist erzählst.
Wenn man lediglich eine Frage stellt (die Phil übrigens ohne so einen dämlichen Kommentar beantwortet hat) und man direkt dumm angemacht wird, dann ist der Sinn dieses Forums nicht gegeben.

Außerdem habe ich es ja schon herausgefunden und es wie in #5 gemacht, aber es funktioniert trotzdem nicht, was sagst du dazu Mr. Klugscheißer?

markus888

Zitat von: TerracottaCSV am November 17, 2021, 13:19:09Guck dir #5 an bevor du hier so einen Mist erzählst.


Es geht nicht um #5, sondern darum dass du dich mit zentralen Grundlagen nicht beschäftigst.
Wenn du das nicht lernst, dann kannst du nicht eigenständig programmieren.
In der Praxis sollte es ja nicht darum gehen wie man etwas macht, sondern welche Methode man wählt.
Dazu bist du aber erst in der Lage, wenn du die Grundlagen beherrscht, und dir selbst erarbeitest was du nicht verstehst.

Du kannst jetzt rumlamentieren, oder den Tritt in den Arsch mit Dank annehmen.


P.S. Diese Erziehung ist kostenlos.
10 Jahre Access

markus888

Zitat von: TerracottaCSV am November 17, 2021, 13:19:09Guck dir #5 an bevor du hier so einen Mist erzählst.


Es geht nicht um #5, sondern darum dass du dich mit zentralen Grundlagen nicht beschäftigst.
Wenn du das nicht lernst, dann kannst du nicht eigenständig programmieren.
In der Praxis sollte es ja nicht darum gehen wie man etwas macht, sondern welche Methode man wählt.
Dazu bist du aber erst in der Lage, wenn du die Grundlagen beherrscht, und dir selbst erarbeitest was du nicht verstehst.

Du kannst jetzt rumlamentieren, oder den Tritt in den Arsch mit Dank annehmen.


P.S. Diese Erziehung ist kostenlos.

Edit: Zum Thema. Schau dir auch noch die anderen Parameter an und lass sie nicht einfach weg.
Persönlich arbeite ich beim SQL Server nur mit ADO da einfach viel besser.
10 Jahre Access

TerracottaCSV


PhilS

Zitat von: TerracottaCSV am November 17, 2021, 16:26:55Lösung gefunden im Englischen Access-Entwicklerforum
Kurze Rückfrage: Es hat geholfen explizit den Recordset-Typ auf dbOpenDynaset festzulegen?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

markus888

Zitat von: PhilS am November 17, 2021, 16:33:40Kurze Rückfrage: Es hat geholfen explizit den Recordset-Typ auf dbOpenDynaset festzulegen?

Ja das hilft, deswegen auch mein Hinweis darauf.
Der Hinweis hätten natürlich etwas eigene Beschäftigung mit dem Thema erfordert.
Der Witz ist ja, das ich die Optionen immer setzte und deswegen ist es mir nie aufgefallen,
dass man den Parameter nicht weglassen darf.
10 Jahre Access

PhilS

Zitat von: markus888 am November 17, 2021, 17:33:27Der Witz ist ja, das ich die Optionen immer setzte und deswegen ist es mir nie aufgefallen,
dass man den Parameter nicht weglassen darf.
Ich hatte genau deswegen in die Dokumentation zu OpenRecordset geschaut, die zum Type-Argument anmerkt:

ZitatNOTE: If you open a Recordset in a Microsoft Access workspace and you don't specify a type, OpenRecordset creates a table-type Recordset, if possible. If you specify a linked table or query, OpenRecordset creates a dynaset-type Recordset.
Da der letzte, fett gedruckte, Satz in den hier relevanten Fällen immer zutreffen müsste, habe ich nicht darauf hingewiesen und bin jetzt etwas überrascht, wenn das die Lösung war.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

TerracottaCSV

ZitatKurze Rückfrage: Es hat geholfen explizit den Recordset-Typ auf dbOpenDynaset festzulegen?
Ja, daran lag es. Alles funktioniert jetzt wunderbar.