Supportnet / Forum / Datenbanken
Hilfe bei Datensatzgruppenerstellung
Frage
Hallo,
ich wollte mal ein Access Projekt ausprobieren, ich konnte auch ganz normal das Projekt und die Tabellen erstellen. Die Datenbank wird jetzt auch auf dem SQL Server Angezeigt.
Ich kann auf die Tabellen mit DoCmd.RunSQL (SQL) eine SQL Anweisung ausführen.
Wenn ich jetzt Versuche über eine Funktion auf die Tabellen zuzugreifen, bzw. ein Datensatzgruppe zu erstellen, bekomme ich folgenden Fehler:
Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festgelegt
Die Datensatzgruppe wollt ich so erstellen:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set db = rs.OpenRecordset("NameTabelle")
Der Verweis auf DAO 3.6 ist auch vorhanden.
Muss ich statt CurrentDb den Pfad auf die mdf das SQL Servers angeben, oder wo liegt der Fehler?
Antwort 1 von Teddy7
Du hast da zweimal "set db =" drin .
Versuch´s mal so :
Dim ttab1 As DAO.Recordset
Dim ktab1 As String
Set ttab1 = CurrentDb.OpenRecordset("Select * from Angebote", dbOpenDynaset)
ktab1 = "AngebotNr = " & cmbAngebot
ttab1.FindFirst ktab1
(wobei cmbAngebot aus einer Form käme)
Gruß
Teddy
Versuch´s mal so :
Dim ttab1 As DAO.Recordset
Dim ktab1 As String
Set ttab1 = CurrentDb.OpenRecordset("Select * from Angebote", dbOpenDynaset)
ktab1 = "AngebotNr = " & cmbAngebot
ttab1.FindFirst ktab1
(wobei cmbAngebot aus einer Form käme)
Gruß
Teddy
Antwort 2 von MikeNikles
Guten Morgen allerseits;)
Ich würde vorschlagen, folgender Code sollte dir weiterhelfen, sj:
-----------------
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("NameTabelle")
------------------
Gruss, mike
Ich würde vorschlagen, folgender Code sollte dir weiterhelfen, sj:
-----------------
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("NameTabelle")
------------------
Gruss, mike
Antwort 3 von sj
Danke für die schnelle Antwort.
Da hatte sich ein Schreibfehler eingeschlichen, es sollte heißen:
Set rs = db.OpenRecordset("NameTabelle")
Habe es jetzt mal mit einem Select ausprobiert, also:
Set ttab1 = CurrentDb.OpenRecordset("Select * from Benutzer", dbOpenDynaset)
ktab1 = "BN = 't1'"
ttab1.FindFirst ktab1
Aufbau Tabelle Benutzer (ID ist Primärschlüssel):
ID (int),Benutzer (nvarchar), BN (nvarchar)
Er kommt wieder der gleiche Fehler in der Set Anweisung.
Wenn ich den Ausdruck CurrentDb Überwache, bleibt der Wert immer auf Nothing, er findet anscheinend die Datenbank nicht.
Was mach ich Verkehrt?
Da hatte sich ein Schreibfehler eingeschlichen, es sollte heißen:
Set rs = db.OpenRecordset("NameTabelle")
Habe es jetzt mal mit einem Select ausprobiert, also:
Set ttab1 = CurrentDb.OpenRecordset("Select * from Benutzer", dbOpenDynaset)
ktab1 = "BN = 't1'"
ttab1.FindFirst ktab1
Aufbau Tabelle Benutzer (ID ist Primärschlüssel):
ID (int),Benutzer (nvarchar), BN (nvarchar)
Er kommt wieder der gleiche Fehler in der Set Anweisung.
Wenn ich den Ausdruck CurrentDb Überwache, bleibt der Wert immer auf Nothing, er findet anscheinend die Datenbank nicht.
Was mach ich Verkehrt?
Antwort 4 von Teddy7
Wo liegt denn die Tabelle ?
Ich lese da was von SQL-Server - hast Du die Tabelle auf einer anderen Datenbank angelegt ?
Hast Du die Tabelle denn auch im Access-Frontend verknüpft ?
Gruß
Teddy
Ich lese da was von SQL-Server - hast Du die Tabelle auf einer anderen Datenbank angelegt ?
Hast Du die Tabelle denn auch im Access-Frontend verknüpft ?
Gruß
Teddy
Antwort 5 von sj
Von vorne.
Also ich habe per Assistent eine Projekt erstellet. Den SQL-Server ausgewählt und einen Namen für die Datenbank vergeben.
Damit habe ich jetzt eine neue Datenbank auf dem SQL-Server (PC1) und eine ADP (Access-Frontend)(PC2).
Dann als nächstes, in der ADP, über Objekte/Tabellen/Erstellt eine Tabelle in Entwurfsansicht die oben genannte Tabelle erstellt.
Diese Tabelle sehe ich jetzt in der Datendank des SQL Servers und in der ADP unter Objekte/Tabellen.
Muss ich die Tabelle jetzt nochmals Verknüpfen oder Freigeben?
Also ich habe per Assistent eine Projekt erstellet. Den SQL-Server ausgewählt und einen Namen für die Datenbank vergeben.
Damit habe ich jetzt eine neue Datenbank auf dem SQL-Server (PC1) und eine ADP (Access-Frontend)(PC2).
Dann als nächstes, in der ADP, über Objekte/Tabellen/Erstellt eine Tabelle in Entwurfsansicht die oben genannte Tabelle erstellt.
Diese Tabelle sehe ich jetzt in der Datendank des SQL Servers und in der ADP unter Objekte/Tabellen.
Muss ich die Tabelle jetzt nochmals Verknüpfen oder Freigeben?
Antwort 6 von Teddy7
Was ist denn ADP ?
Antwort 7 von sj
adp ist die Dateiendung von Access Projekten, also das Frontend. Hoffe ich doch mal.
Hab’s jetzt mal mit ADO probiert hier kann auf die Tabellen zugreifen:
Dim db As Connection
Dim rs As Recordset
Dim stmt, bez As String
Set db = CurrentProject.Connection
Set rs = New Recordset
stmt = "SELECT * FROM LSBE"
rs.Open stmt, db
Nur über DAO will es nicht klappen.
Hab’s jetzt mal mit ADO probiert hier kann auf die Tabellen zugreifen:
Dim db As Connection
Dim rs As Recordset
Dim stmt, bez As String
Set db = CurrentProject.Connection
Set rs = New Recordset
stmt = "SELECT * FROM LSBE"
rs.Open stmt, db
Nur über DAO will es nicht klappen.
Antwort 8 von MickK
Hallo ADP kenne ich auch nicht. Aber probier es mal so
So funktioniert es jedenfalls bei mir in ACC2000.
Gruß
Mick
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("NameTabelle")
....
So funktioniert es jedenfalls bei mir in ACC2000.
Gruß
Mick
Antwort 9 von sj
Fehler bleibt. :(