Datenzugriff auf mehrere Spalten in Tabelle

Achmet Schmidt

Grünschnabel
Hallo Leute,

ich habe hier ein Problem mit einem Zugriff auf eine Datenbank. Ich möchte aus meiner Kundenliste mehrer Spalten auslesen.
Abfrage$ = "SELECT * FROM Kundeninfo WHERE Kunden.KundenNr.= '" & KDNr & "'"

Wie schaffe ich es jetzt, wenn ich ihm den Kundennamen eingebe,das er mir dann auch die anderen Spalten ausliest?
Bsp. Eingabe Müller, dann soll er mir den Vornamen anzeigen ERWIN und noch das Geburtsdatum etc.

cih hoffe ihr könnt mir dabei helfen,denn ich weiß nicht mehr recht weiter.

Gruß

Schmidti
 
Mit dem * in der Select-Anweisung rufst du bei der Abfrage doch schon alle Spalten ab die in der Tabelle stehen... ich verstehe das Problem nicht wirklich.
 
Poste doch mal den Code damit man drüberschauen kann und sieht wie du's bisher machst... Das vereinfacht die ganze Sache!
 
On Error GoTo ErrHandler



gVertriebsDBName = "c:\daten\vertrieb\vertrieb2004.mdb"

' Set obJAccess = CreateObject("Access.Application")
' obJAccess.Visible = True
' Set objAccDoc.Open = obJAccess.Open(gVertriebsDBName)

Set B1 = Worksheets("tabelle1").Range("B3")

Set gVertriebsDBconn = New ADODB.Connection

gVertriebsDBconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & gVertriebsDBName

gVertriebsDBconn.CursorLocation = adUseClient


If Dir(gVertriebsDBName) <> "vertrieb2004.mdb" Then gVertriebsDBName = "c:\daten\vertrieb\vertrieb2004.mdb"
'*** Schewanow 20.08.2003
If Err <> 0 Then gVertriebsDBName = "c:\daten\vertrieb\vertrieb2004.mdb"
On Error GoTo 0

Set WKZNr = Worksheets("Tabelle1").Range("A1")

'MsgBox "WKZNr:" & WKZNr


'WKZNr = "041"
Abfrage$ = "SELECT * FROM T_MUTAX_Werkzeuge WHERE T_MUTAX_Werkzeuge.WerkzeugNr = '" & WKZNr & "'"

strSQL = Abfrage$

'strSQL = "SELECT FKurz & FName & FStraße & FPLZ & FOrt FROM Adressdatenbank"

Set rs_table = New ADODB.Recordset

rs_table.Open strSQL, gVertriebsDBconn, , adLockReadOnly



If rs_table.BOF = True Then
AnzDS = 0
MsgBox "Achtung - Technische Daten noch nicht gepflegt", vbOKOnly, "FEHLER"
Else
rs_table.MoveLast
AnzDS = rs_table.RecordCount ' gibt Anzahl Datensätze zurück...
rs_table.MoveFirst ' WICHTIG - Sonst letzter Datensatz
End If


B1 = WKZNr

gVertriebsDBconn.Close 'Schließen der Verbindung


'FEHLERBEHANDLUNG - Start ------------------------------------------------------
Exit_Init_VertriebsDB:

On Error Resume Next
Exit Sub

ErrHandler:

MsgBox "Unerwarteter Fehler " & (Err.Number And &HFFFF&) & " in Prozedur 'Init_VertriebsDB': " & Err.Description, vbCritical
Resume Exit_Init_VertriebsDB

End Sub
 
Ich sehe jetzt auf die schnelle nirgendwo eine Ausgabe der RecordSet-Daten, aber um einen Feldinhalt auszugeben musst du den Inhalt mit

rs_table.Fields("Feldname").Value

abfragen
 
ja aber das ist ja mein problem, woher weiß der rechner denn, welche werte er auslesen muß? bzw. er kennt zwar über abfrage$, wo der cursor steht aber wie kann ich ihm denn sagen, das er mir die nebenstehenden zeilen auch noch auslesen soll?


schmidti
 
Nebenstehende ZEILE? Gibts nicht, das wären dann Spalten!

Also:

Im SQL-Statement sagst du ihm was er für Felder aus der Datenbank selektieren soll. Angenommen du hast eine Tabelle TabelleXY mit den Felder FeldX, FeldY und FeldZ Mit * werden alle Spalten, also FeldX, FeldY und FeldZ, zur Auswertung herangezogen. Willst du nur einzelne Spalten haben, sagst du ihm

SELECT FeldX, FeldY FROM TabelleXY

Jetzt kannst du mit rs_table.Fields("FeldY").Value die Daten des aktuellen Datensatzes abrufen. Allerdings kannst du nicht auf das Feld FeldZ zugreifen, weil das nicht mit selektiert wurde!

Wenn du mit SELECT * FROM Tabelle XY die Daten holst, funktioniert das genau so.

OK?
 
Zurück