Supportnet Computer

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

auf Access-Tabelle mit VBA zugreifen





Frage

Hallo, ich versuche, auf eine Tabelle in Access 2000 mittels VBA zuzugreifen; es klappt aber nicht. Leider kann mir Karl Klammer nicht helfen (meine Office-hilfe ist im Moment zerschossen), und auch bei Google gabs nix brauchbares. Am besten wäre ein kurzes Beispiel o.ä. Hier ein Codefragment: [code] Set db = CurrentDb() Set rs = db.OpenRecordset("newTitles", dbOpenDynaset) [/code] (Die Methode OpenRecordset liefert den Fehler 13: Typen unverträglich danke für Eure Hilfe!

Antwort 1 von Newan

Zitat:
ich versuche, auf eine Tabelle in Access 2000 mittels VBA zuzugreifen; es klappt aber nicht.


Wie willst du das den machen? In der access anwendung oder nicht?

Bis du in Acces drinnen und willst nur das sich die tabelle öffnet oder Daten ausgelesen werden oder willst du von aussen ohneAccess drauf zugreifen?



Newan




Signatur und Textformatierungen wurden mit SNTool V1.1.8 erstellt

Antwort 2 von Floooooo

Hi Newan,

Zitat:
Wie willst du das den machen? In der access anwendung oder nicht?

Bis du in Acces drinnen und willst nur das sich die tabelle öffnet oder Daten ausgelesen werden oder willst du von aussen ohneAccess drauf zugreifen?


Innerhalb eines VBA-Modules in der entsprechenden Access-MDB.
Ich will auch nicht, dass sich die Tabelle öffnet o.ä., sondern lediglich den Inhalt programmgesteuert manipulieren, also z.B. Datensätze eifügen, löschen , ändern.

BTW: Anwendungsübergreifend sollte der Zugriff nicht viel anders laufen, ich muss ja dieselben Objekte verwenden.

Antwort 3 von Floooooo

weiß keiner was? bin für jeden tipp dankbar!

Antwort 4 von Floooooo

Noch ein Versuch: Vielleicht ist vormittags jemand hier, der bescheid weiß?

Antwort 5 von Newan

Ja so meinte ich das in einem Modul in der Access anwendung... gut hätten wir das geklärt

Zitat:
Ich will auch nicht, dass sich die Tabelle öffnet o.ä., sondern lediglich den Inhalt programmgesteuert manipulieren, also z.B. Datensätze eifügen, löschen , ändern.


Daten kannst du mit dem RunSQL befehl manipulieren..

und dann mit SQl weiter....

sieht dann so aus z.b so aus:

DoCmd.RunSQL ("update Tabellenname set Spaltenname=1 ;")


oder

DoCmd.RunSQL "insert into Tabellenname (spalte1, 
Spalte2, Spalte3, Spalte4, Spalte5, Spalte6, Spalte7, Spalte8) values ('" & sSpalte1 & "', '" & spalte2 & "','" & sSpalte3 3& "', '" & sSpalte4 & "', '" & sSpalte5 & "', '" & sSpalte6 & "', '" & sSplate7 & "', 0) "


Dabei handelt es sich bei splate um Variablen die schon gefüllt sind und vorher definiert wurden..

Docmd = wenn du einen Button hast wird das gemacht

kannst du aber auch tauschen gegen andere Befehle...und dann RunSQL



es gibt dann die 3 mäglichkeiten mit SQL die Daten zu Manipulieren.

insert
update
delete


Das ganze kannst du dann ja noch mit mit bedingungen in VBA verbinden

If... then ...else... endif


Ich hoffe ich hab dir ein wenig weitergeholfen


Rückmeldung bitte ob es damit geht!!!Danke

Newan





Signatur und Textformatierungen wurden mit SNTool V1.1.8 erstellt

Antwort 6 von Floooooo

@Newan:

Danke, das probiere ich heute abend mal aus (keine Angst, SQL kann ich... normalerweise arbeite ich mit 'richtigen' Datenbanken;) ich wusste nicht, dass man auch einfach per VBA direkt SQL-Befehle an die Tabelle absetzen kann.

Aber ist das Arbeiten mit den Objekten von Access (z.B. dem Recordset) da nicht sinnvoller?

Würde mich über Meinungen freuen!

Antwort 7 von Newan

Zitat:
keine Angst, SQL kann ich... normalerweise arbeite ich mit 'richtigen' Datenbanken;)


Ne angst dadrum hab ich nicht du würdest ja sowieso wieder ankommen wenn du es nicht wüsstest!!oder?


Zitat:
Aber ist das Arbeiten mit den Objekten von Access (z.B. dem Recordset) da nicht sinnvoller


Da kann ich dir nicht viel sagen, nur wenn du es doch so schaffst mit dem RUNSQLdann ist es doch egal oder?

Es gibt viele Wege die zu einem Ziel führen, hauptsache du findest einen.....


Newan





Signatur und Textformatierungen wurden mit SNTool V1.1.8 erstellt

Antwort 8 von struppi

Hallo,
Das Du eine Fehlermeldung bekommst könnte auch daran liegen, das das Recordset-Object nicht die richtige Priorität hat. Es gibt nämlich ein ADO.Recordset-Object und ein DAO.Recordset-Object.
Schau mal in den Verweisen der Datenbank nach ob Du beide Bibliotheken verwendest. Wenn ja dann verändere die Prioritäten oder deklariere die Objectvariablen eindeutig...
gruß struppi