Datenbankzugriff

29/03/2009 - 09:04 von Karsten Sosna | Report spam
Hallo NG,
ich habe ein Problem mit einem Datenbankzugriff:
\\\
Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim sql As String
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.ConnectionString = "Data Source='C:\Temp\db1.mdb'"
Conn.Open()
sql = "SELECT * FROM Table1"
RS.ActiveConnection = Conn
RS.CursorLocation = ADODB.CursorLocationEnum.adUseClient
RS.LockType = ADODB.LockTypeEnum.adLockOptimistic
RS.Source = sql '<< Hier kommt der Fehler
RS.Open()
'...
///
Diesen Abschnit habe ich aus einer VB6-Anwendung übernommen, erhalte aber
bei der SQL-Zuwesung folgenden Fehler:

"Die Argumente sind vom falschen Typ, liegen außerhalb des
Gültigkeitsbereiches oder sind miteinander unvereinbar."

In der VB6-Anwendung làuft das einwandfrei. Sowie in der VB6-Anwendung als
auch in der VB.Net-Anwendung habe ich einen Verweis auf "Microsoft ActiveX
Data Objects 2.8 Library"

Danke für jede Hilfe.
Gruß Scotty
 

Lesen sie die antworten

#1 Peter Götz
29/03/2009 - 11:26 | Warnen spam
Hallo Karsten,

ich habe ein Problem mit einem Datenbankzugriff:
\\\
Dim Conn As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim sql As String
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.ConnectionString = "Data Source='C:\Temp\db1.mdb'"
Conn.Open()
sql = "SELECT * FROM Table1"
RS.ActiveConnection = Conn
RS.CursorLocation = ADODB.CursorLocationEnum.adUseClient
RS.LockType = ADODB.LockTypeEnum.adLockOptimistic
RS.Source = sql '<< Hier kommt der Fehler
RS.Open()



RS.Source ist das Problem.
So gehts besser:

Dim strFile As String = "H:\Verzeichnis\DB.mdb"
Dim Cnn As New ADOdb.Connection

With Cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"

.CursorLocation = _
ADODB.CursorLocationEnum.adUseClient

.Properties("Data Source").Value = strFile
.Open()
End With


Dim RS As New ADODB.Recordset
With RS
.ActiveConnection = Cnn

' *************************************************
.let_Source("Select * From Tabelle")
' *************************************************

.CursorLocation = _
ADODB.CursorLocationEnum.adUseClient

.CursorType = ADODB.CursorTypeEnum.adOpenStatic
.LockType = ADODB.LockTypeEnum.adLockOptimistic
.Open()
End With

MsgBox _
("Recordset mit " & _
RS.RecordCount.ToString & _
" geladen", _
MsgBoxStyle.Information)

RS.Close()
Cnn.Close()

Gibt es einen zwingenden Grund ADODB zu verwenden,
anstatt ADO.net?


Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen