PDA

Vollständige Version anzeigen : Datenzugriff auf SQL Datenbank


Sandro
02.11.2000, 13:14
Hallo Leute
1. Wie kann ich via VBA auf Daten, auf MS SQL Server 7, zugreiffen?

2. Wie kann ich Abfragen erstellen die Feldwerte in meinem Formular als Parameter verwenden und an den MS SQL Server 7 leiten.

Rom
02.11.2000, 15:29
Hallo Sandro,
du kannst via ADODB auf einen SQL-Server zugreifen. So sieht es dann aus:
Private Sub ConnectionUndRecordset()
Dim cnnNorthwind As ADODB.Connection
Dim strConnectionString As String
Dim recCategories As ADODB.Recordset
Dim strSql As String

strConnectionString = "Provider=SQLOLEDB.1;Initial Catalog=" & DeineDatenbank & ";Data Source=" & DeinServer
Set cnnNorthwind = New ADODB.Connection
cnnNorthwind.Open strConnectionString, DeinBenutzer, DeinPasswort

strSql = "SELECT * FROM Categories;"
Set recCategories = New ADODB.Recordset
recCategories.Open strSql, cnnNorthwind

...
Exit Sub

Damit wird eine Connection auf die Northwind Datenbank erstellt und ein Recordset geöffnet.

Deine Kriterien (aus dem Formular) kannst du dann mit der WHERE-Bedingung in das SQL-String einsetzen:
strSql = "SELECT * FROM Categories WHERE((((Categories.CategoryID)=" & Form_DeinForm.DeinFeld & "));"

Ich hoffe es ist Verständlich!?

Sandro
02.11.2000, 17:57
Vielen Dank Rom...

UNTERSCHIED ZWISCHEN ADO UND ADODB

Mit deiner Hilfe, werde ich vermutlich weiter kommen. Da ist jedoch noch eine Frage. Meine Datenbank habe ich als Projekt abgespeichert und möcht wissen ob ich überhaupt eine Verbindung zum Server Aufbauen muss oder ob ich die Syntax anpassen muss?
...könnte ich auch mit ADO die Variablen Deklarieren?

Dein Beispiel abgeändert:
Private Sub ConnectionUndRecordset()
Dim cnnNorthwind As DAO.Connection
...
Dim recCategories As DAO.Recordset
...


******************************** noch eine Frage ***********

strConnectionString="Provider = SQLOLEDB.1;Initial Catalog=" & DeineDatenbank & ";Data Source=" & DeinServer
... wenn ich die Datenbank anschliessend auf einem Anderen Server Installiere, wie würdest du den namen des Servers abspeichern so dass ich nicht in allen VBA-Modulen den Servername anpassen muss!

Sandro
02.11.2000, 17:59
Sorry ich meine nicht ADO sondern DAO (schreibfehler!!)

Rom
03.11.2000, 08:48
Hallo Sandro,
bezüglich der Variablen mit DAO, diese sind eigendlich gleich, nur brauchst du zusätzlich noch welche (Workspace-Objekt einfügen), ansonsten würde es nicht gehen.
Genaueres kann ich dir jetzt auch nicht sagen, weil ich daran etwas verzweilfelt bin. Ich glaube, du mußt (wenn du mit DAO auf einen SQL-Server zugreifen willst) noch eine ODBC-DSN anlegen und diese dann für deine OpenConnection Methode einsetzen. Dieses entfällt mit ADO.
Würde ungefähr so aussehen:

strConnectionString = "ODBC;DATABASE=DeineDatenbank;UID=sa;PWD=;DSN=DeineDSN"

Dabei müßtest du den Benutzer und Passwort nur in der DSN anlegen, d.h. bei jedem Rechner brauchst du eine DSN. Der Server und Datenbankname wird ebenfalls in der DSN eingesetzt. D.h. sollte deine Anwendung mal auf einem anderen Server laufen, mußt du eigendlich nur die DSN anpassen und nicht den Code.

Genauere Ausführung gibt es auch in der Hilfe. Suche nach "OpenConnection".

Hoffe damit kommst du noch etwas weiter.