moeller67
Goto Top

Visual Studio 2008 (VBA)

Hallo,

ich habe in einem Tool in Visual Studio 2008 (VBA) eine
Datenverbindung (über den Assistenten) auf eine Access-Datenbank
hergestellt. Hab dann im Formular die Datenverbindung mit der Tabelle
aufgemacht und ein Feld auf das Formular gezogen.

Ich kriege den Datensatz zwar angezeigt, kann ihn aber nicht ändern -
bzw. ändern schon, aber er speichert es nicht in die Access-DB zurück.

Was muß ich tun. Ich will in einem einzigen Feld (Datenbank hat nur einen Datensatz)
den Wert ändern. Will auch nicht hinzufügen, löschen oder so.

Bitte helft mir.

Danke
Stephan Möller

Content-ID: 135293

Url: https://administrator.de/forum/visual-studio-2008-vba-135293.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

MonoTone
MonoTone 09.02.2010 um 17:25:59 Uhr
Goto Top
Wo liegt die Datenbank ? Lokal oder Remote ?
Was hast du bisher für Code ?

Ich kenn mich mit dem Assistenten in VS 2008 nicht aus, aber eine Verbindung zu einer Datenbank kannst du über AdoDb machen ->
 
Dim Conn As New ADODB.Connection
    Dim RS As New ADODB.Recordset
Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=1234"  
Conn.Open ConnectionString

RS.Open "Select * From Table Where smth Like 'iwant'", Conn  
For a = 0 To RS.Fields.Count
'mach was mit RS.Fields(a)  
Next
RS.close
Conn.close
moeller67
moeller67 09.02.2010 um 18:42:05 Uhr
Goto Top
Danke schon mal für die Hilfe.

Klappt leider nicht, dein Code. Er sagt "ADODB.Connection " ist nicht definiert.

Meine Datenbank liegt ganz normal auf C:\ in einem Unterordner.

Gruss
Stephan
MonoTone
MonoTone 09.02.2010 um 22:50:55 Uhr
Goto Top
set conn=Server.CreateObject("ADODB.Connection")  
set RS=Server.CreateObject("ADODB.recordset")  

sry Instanzierung war .net
moeller67
moeller67 10.02.2010 um 07:49:59 Uhr
Goto Top
Tja, hilft alles nicht. Nun sagt er "Server" wurde nicht deklariert.
Trotzdem danke.

Gruss
Stephan
MonoTone
MonoTone 10.02.2010 um 09:29:36 Uhr
Goto Top
Hab auch gerade gelesen das das mit dem New funktioniert wenn man die höchste Version der Microsoft ActiveX Data Objects Library als Verweis
hinzufügt (über Extras->Verweise)

Habs aber hier quasi mal als Vb Script Variante die in VBA aber funktioniert. Habs kurz getestet
Dim ConnectionStr
Dim Conn, RS
Set Conn = CreateObject("ADODB.Connection")  
Set RS = CreateObject("ADODB.Recordset")  
ConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=1234"  
Conn.Open ConnectionString
RS.Open "Select * From Table Where smth Like 'iwant'", Conn  
For a = 0 To RS.Fields.Count
'mach was mit RS.Fields(a)  
Next
RS.Close
Conn.Close

Ein winzig bissi Eigeninitiative und du wärst drauf gekommen..

gruss Mono
moeller67
moeller67 10.02.2010 um 11:26:41 Uhr
Goto Top
Alles gut bis hier hin, da stößt er auf einen Fehler.
Source stimmt und die Tabelle default gibt es auch.

RS.Open "Select * From default ", Conn

Syntaxfehler in From-Klausel
Überprüfen Sie die ErrorCode-Eigenschaft der Ausnahme, um das vom COM-Objekt zurückgegebene HRESULT zu bestimmen.

Treibt mich noch zum Wahnsinn, dieses VB.Net

Gruss
Stephan Möller
MonoTone
MonoTone 10.02.2010 um 13:57:35 Uhr
Goto Top
vb.net ? ich denke vba oO

und dies ist ein Datenbank Fehlercode, der kommt von Access, entweder du hast iwo ein Leerzeichen vergessen oder zu viel, die Tabelle existiert nicht oder du hast keinen Zugriff drauf, der Tabellenname ist falsch, am besten du erstellst mal eine Neue TEST Datenbank, erstelllst eine Tabelle per Code, befüllst sie und fragst sie ab und liest dich da mal etwas rein in das thema...

Mit dem was du sagst kann ich leider nicht genug anfangen um dir ordentlich helfen zu können... es kann viele Gründe haben wieso so ein Fehler auftritt
moeller67
moeller67 10.02.2010 um 14:16:48 Uhr
Goto Top
Super und vielen Dank.

Es ist so, dass das SQL den Tabellennamen "default" nicht zuläßt.
Hab die Tabelle umbenannt und schon geht es.

Also nochmal
Vielen Dank

Gruss
Stephan