SQL Abfrage erstellen mit ODBC

Ulles

Grünschnabel
Hallo,

da ich ein ziemlicher VB Anfänger bin, bitte ich Euch Rücksicht zu nehmen.

Also hier mein Problem:

=============================================================

Ich möchte ein kleines Programm erstellen, indem über eine SQL Abfrage Daten zusammengestellt werden.

Im Textfeld KDNTXT wird vom Anwender die entsprechende Kundennummer eingegeben und über eine Befehlstaste cmdsql abgerufen.

Nun soll die Abfrage auf eine Datenbank erfolgen (Name, Anschrift, Ort des Kunden) und im Textfeld KDNPRT ausgegeben werden.

Die ausgebenen Daten sollen auf einem Etikettendrucker ausgegeben werden.

=============================================================

Die Form steht, aber ich habe keine Idee wie es weitergehen soll.
Hat vielleicht jemand einen Tip für einen Ansatz?
 
Hi Ulles,
Das Beispiel ist für ADO gedacht.
also zuerst hast Du das Ereignis cdm_click, soweit ist es klar oder?

Dann benötigst Du:
1. Eine ODBC Verbindung auf Deinem Rechner. Die richtest Du unter Einstellungen, Verwaltung, Datenquellen (ODBC) ein. Richte eine neue "System DSN" ein. Hier muss Du wisssen, welche DB Du abfragen möchtest und brauchst dann User und Passwort. Diese Daten musst Du später in VB wieder benutzen.

Jetzt zum Programm. Du brauchst:
2. Ein connection object um Dich mit der Datenbank zu verbinden. Dazu musst Du folgende Verweise haben (Menu: Projekt,Verweise):
a) Microsoft ActiveX Data Objects 2.5 Library (älter geht auch)
b) Microsoft ActiveX Data Objects Recordset 2.7 Library
c) Microsoft Data Source Interfaces

BspCode:
Private Function Connect() As Integer

Dim Stat As Integer ' Das ist einen Variable, mit der Du den
' Status der Connection abfragst
dim connObj as ADODB.Connection 'Das ist Dein Connection Objekt

Set connObj = New Connection ' Objekt initialisieren
With connObj
.ConnectionString = "dsn=" & DNS_NAME & ";UID= " & DB_User & ";PWD=" & DB_Pass
.IsolationLevel = adXactIsolated ' nicht so wichtig
.Open ' öffnet die Connection
End With
' Hierbei ist das schwierigste der Connetion String. In diesem Beispiel sind User und
' Passwort aus der ODBC-Verbindung in den Variablen DB_User und DB_Pass
' abgelegt. DNS_Name ist der Name der Datenbank.


'Prüfen, ob die Verbindung zur DB steht.
If connObj .State = 0 Then
Connect = 2 ' Hat nicht geklappt
ElseIf cnTIPS.State = 1 Then
Connect = 0 'Hat geklappt. Das ist jeweils der
' Rückgabewert der Funktion
End If

End Function

Dann brauchst Du ein Command object, mit dem Du den Befehl ausführen kannst und ein Recordset object mit dem Du das Ergebnis in empfang nimmst

3. Das Command Object
dim cmd as ADODB.Command
Set cmd = New ADODB.Command ' Commandobject initialisieren

With cmd
.ActiveConnection = connObj
.CommandType = adCmdText
.CommandText = " Select * from Table where ................" usw.
.Prepared = False
End With

4. Das Recordset object

dim rs as ADOBD.Recordset
Set rs = New ADODB.Recordset ' Recordset initialisieren

rs.open cmd ' Der Command wird mit dem Öffnen des Recordsets
' ausgeführt

' Status des Recordset abfragen
if rs.state = 0 or rs.EOF = true then ' EOF = end of file
das object ist zu oder hat keinen Inhalt.
else
das objekt hat Inhalt
end if

Du kannst nun die einzelnen Felder der Tabelle im Recordset abfragen, indem Du
das Recordset Zeile für Zeile durchläufst

5. Recordset abfragen
Do While Not rs.EOF
variable = rs.Fields("TMP_NR").Value ' in rs.Fields muss der Feldname stehen
rs.MoveNext
Loop

Du kannst nun die Daten in ein Array oder collection objekt einlesen, dann hast Du sie beisammen.

Ich hoffe das hilft Dir weiter. Wenn das mit dem connection object nicht klappt, dann frag nochmal nach. Man kann das Objekt auch von VB erstellen lassen.
 
Kleiner Nachtrag:

Betrifft Connection Objekt.
Anstelle "
Set connObj = New Connection
muss das natürlich
Set connObj = New ADODB.Connection
heißen.

Herbert
 
Zurück