Benutzer mit den meisten Antworten
CreateQueryDef in VB2010? / Abfrage in Datenbank per VB2010-Programm erstellen und als Abfrage in DB speichern für Aufruf in externem Fontend

Frage
-
Hallo zusammen,
ich lese Daten aus einer Datenbank aus und will für ein externes Fontend verschiedene Abfragen erstellen und dann als Abfragen mit festgelegten Namen in der Datenbank selbst speichern. VB6 konnte ich das mit DAO erschlagen:
VB6 - Code:
DIM db As database
DIM q As QueryDef
...
Set db = OpenDatabase(dbName)
Set q = db.CreateQueryDef(query, sql)....
Wie kann ich die Funktionalität in VB2010 programmieren?
Gruß
Antworten
-
Hallo,
wenn Du ausschließlich für Access Datenbanken Abfragen erzeugen willst, so wäre DAO und CreateQueryDef
weiterhin die beste Möglichkeit. Den zwischenzeitlichen Exkurs über ADOX hat Microsoft soweit es Access angeht,
mehr oder weniger aufgegeben.Du kannst DAO als Verweis über den COM Reiter hinzufügen als Microsoft DAO 3.6 Object Engine hinzufügen.
Wobei das die "alte" DAO 3.6 aus der Jet Engine 4.0 ist und diese nur für 32-Bit existiert.
Dein Programm muss als 32-Bit-Anwendung als "x86" kompiliert werden, siehe
Gewusst wie: Optimieren einer Anwendung für einen bestimmten CPU-TypÜber das Microsoft Access Database Engine 2010 Redistributable erhälst Du eine aktuellere Version,
die für die Office 2007/2010 Formate nutzbar ist und auch für 64-Bit verfügbar ist - wobei man sich für eine
der beiden Versionen entscheiden muss.
Hast Du die ACE Installiert, müsstet Du die Microsoft Office 14.0 Database Engine Object Engine als Verweis hinzufügen.Die Schnittstellen sind in beiden Fällen vergleichbar, so dass Du Deinen VB6 Code übernehmen kannst.
Gruß Elmar
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 15. April 2011 12:57
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 15. April 2011 13:30
Alle Antworten
-
Hallo,
wenn Du ausschließlich für Access Datenbanken Abfragen erzeugen willst, so wäre DAO und CreateQueryDef
weiterhin die beste Möglichkeit. Den zwischenzeitlichen Exkurs über ADOX hat Microsoft soweit es Access angeht,
mehr oder weniger aufgegeben.Du kannst DAO als Verweis über den COM Reiter hinzufügen als Microsoft DAO 3.6 Object Engine hinzufügen.
Wobei das die "alte" DAO 3.6 aus der Jet Engine 4.0 ist und diese nur für 32-Bit existiert.
Dein Programm muss als 32-Bit-Anwendung als "x86" kompiliert werden, siehe
Gewusst wie: Optimieren einer Anwendung für einen bestimmten CPU-TypÜber das Microsoft Access Database Engine 2010 Redistributable erhälst Du eine aktuellere Version,
die für die Office 2007/2010 Formate nutzbar ist und auch für 64-Bit verfügbar ist - wobei man sich für eine
der beiden Versionen entscheiden muss.
Hast Du die ACE Installiert, müsstet Du die Microsoft Office 14.0 Database Engine Object Engine als Verweis hinzufügen.Die Schnittstellen sind in beiden Fällen vergleichbar, so dass Du Deinen VB6 Code übernehmen kannst.
Gruß Elmar
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 15. April 2011 12:57
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 15. April 2011 13:30
-
-
Hallo Andreas,
schön das es geklappt hat.
Kleiner Hinweis bezüglich der Antworten im anderen Forum:
CREATE PROCEDURE und CREATE VIEW sind nicht äquivalent zu CreateQueryDef.
Nur die mit CreateQueryDef erstellten Abfragen erscheinen in der Access Benutzeroberfläche.
Die SQL Anweisungen wiederum entsprechend den mit ADOX eingeführten Definitionen,
die (ursprünglich) nur für OleDb (VB6) gedacht waren, siehe
Description of the new features that are included in Microsoft Jet 4.0
und INFO: Issues Migrating from DAO/Jet to ADO/JetGruß Elmar