theterminater
Enthusiast
VBA - SQL in Visual Studio - Problem -> Fehler "Keine Daten für die Zeile/Spalte"
Hey Leute,
ich habe mal wieder ein Problem. Und zwar wird bei folgendem Code in der grafischen Ausgabe nichts ausgegeben. Ich erhalte nur den "Fehler" keine Daten für die Zeile/Spalte. Wo liegt das Problem?
Hier der Code:
Danke euch!
Hey Leute,
ich habe mal wieder ein Problem. Und zwar wird bei folgendem Code in der grafischen Ausgabe nichts ausgegeben. Ich erhalte nur den "Fehler" keine Daten für die Zeile/Spalte. Wo liegt das Problem?
Hier der Code:
Option Explicit On
Option Strict On
Imports System.IO
Imports System.Data.OleDb
Public Class frm_Kundenanzeige
Private Sub bt_Abbrechen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bt_Abbrechen.Click
frm_Menu.Show()
Me.Hide()
End Sub
Private Sub bt_Suchen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Suchen.Click
Dim KundenNr As String
Dim Anrede As String
Dim Nachname As String
Dim Vorname As String
Dim Strasse As String
Dim Hausnummer As String
Dim PLZ As String
Dim Ort As String
Dim Land As String
Dim Telefon As String
Dim Fax As String
Dim Email As String
Dim Kontoinhaber As String
Dim IBAN As String
Dim BIC As String
Dim Bank As String
Dim Magazin As String
Dim Suchtext As String
Dim Suchfeld As String
'Werte vom Formular holen
Suchtext = tb_Suchtext.Text
If rb_KdNr.Checked Then
Suchfeld = "KdNr"
ElseIf rb_VName.Checked Then
Suchfeld = "Vorname"
ElseIf rb_NName.Checked Then
Suchfeld = "Nachname"
ElseIf rb_Strasse.Checked Then
Suchfeld = "Strasse"
ElseIf rb_PLZ.Checked Then
Suchfeld = "PLZ"
ElseIf rb_Stadt.Checked Then
Suchfeld = "Stadt"
ElseIf rb_Land.Checked Then
Suchfeld = "Land"
ElseIf rb_Telefon.Checked Then
Suchfeld = "Telefon"
ElseIf rb_Email.Checked Then
Suchfeld = "Email"
ElseIf rb_KtoInhaber.Checked Then
Suchfeld = "Kontoinhaber"
ElseIf rb_IBAN.Checked Then
Suchfeld = "IBAN"
Else
Suchfeld = "BIC"
End If
'Verbindung aufbauen
Dim strPfadDatei As String
Dim AccessDatei As New OpenFileDialog
AccessDatei.InitialDirectory = "E:"
AccessDatei.Filter = "accdb-Dateien (*.accdb) |*.accdb| alle Dateien (*.*) |*.*"
If AccessDatei.ShowDialog() = Windows.Forms.DialogResult.OK Then
strPfadDatei = AccessDatei.FileName
Dim strDBVerbindung As String
strDBVerbindung = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPfadDatei
Try
Dim Verbindung As New OleDb.OleDbConnection
Verbindung.ConnectionString = strDBVerbindung
Verbindung.Open()
Dim Ausfuehrer As New OleDbCommand
Ausfuehrer.Connection = Verbindung
'Ermittlung der Daten für den Primärschlüsselwert
Dim strSQL As String = "SELECT KdNr, Anrede, Nachname, Vorname, Strasse, Hausnummer, PLZ, Ort, Land, Telefon, Fax, Email, Kontoinhaber, IBAN, BIC, Bank FROM tblKunde WHERE " & Suchfeld & " LIKE '*" & Suchtext & "*' ;"
Dim Vorleser As OleDb.OleDbDataReader
Console.WriteLine(strSQL)
Ausfuehrer.CommandText = strSQL
Vorleser = Ausfuehrer.ExecuteReader()
Vorleser.Read()
' Dim alterKunde As New Kunde(KundenNr, Anrede, Nachname, Vorname, Strasse, Hausnummer, PLZ, Ort, Land, Telefon, Fax, Email, Kontoinhaber, IBAN, BIC, Bank)
' While Vorleser.Read()
KundenNr = CStr(Vorleser(0))
Anrede = CStr(Vorleser(1))
Nachname = CStr(Vorleser(2))
Vorname = CStr(Vorleser(3))
Strasse = CStr(Vorleser(4))
Hausnummer = CStr(Vorleser(5))
PLZ = CStr(Vorleser(5))
Ort = CStr(Vorleser(6))
Land = CStr(Vorleser(7))
Telefon = CStr(Vorleser(8))
Fax = CStr(Vorleser(9))
Email = CStr(Vorleser(10))
Kontoinhaber = CStr(Vorleser(11))
IBAN = CStr(Vorleser(12))
BIC = CStr(Vorleser(13))
Bank = CStr(Vorleser(14))
Dim alterKunde As New Kunde(KundenNr, Anrede, Nachname, Vorname, Strasse, Hausnummer, PLZ, Ort, Land, Telefon, Fax, Email, Kontoinhaber, IBAN, BIC, Bank)
alterKunde.FuegeKundeInListeHinzu(alterKunde)
' Loop
Verbindung.Close()
Dim zi As Integer 'Zeilenindex
zi = 0
dgvKunde.Rows.Clear()
dgvKunde.Columns.Add("spKundenNr", "KundenNr") 'spaltenname/überschrift im SGV
dgvKunde.Columns.Add("spAnrede", "Anrede")
dgvKunde.Columns.Add("spNachname", "Nachname")
dgvKunde.Columns.Add("spStrasse", "Strasse")
dgvKunde.Columns.Add("spHausnummer", "Hausnummer")
dgvKunde.Columns.Add("spPLZ", "PLZ")
dgvKunde.Columns.Add("spOrt", "Ort")
dgvKunde.Columns.Add("spLand", "Land")
dgvKunde.Columns.Add("spTelefon", "Telefon")
dgvKunde.Columns.Add("spFax", "Fax")
dgvKunde.Columns.Add("spEmail", "Email")
dgvKunde.Columns.Add("spKontoinhaber", "Kontoinhaber")
dgvKunde.Columns.Add("spIBAN", "IBAN")
dgvKunde.Columns.Add("spBIC", "BIC")
dgvKunde.Columns.Add("spBank", "Bank")
dgvKunde.Columns(0).Width = 80 'Breite der Spalten
dgvKunde.Columns(1).Width = 80
dgvKunde.Columns(2).Width = 80
dgvKunde.Columns(3).Width = 80
dgvKunde.Columns(4).Width = 80
dgvKunde.Columns(5).Width = 80
dgvKunde.Columns(6).Width = 80
dgvKunde.Columns(7).Width = 80
dgvKunde.Columns(8).Width = 80
dgvKunde.Columns(9).Width = 80
dgvKunde.Columns(10).Width = 80
dgvKunde.Columns(11).Width = 80
dgvKunde.Columns(12).Width = 80
dgvKunde.Columns(13).Width = 80
dgvKunde.Columns(14).Width = 80
dgvKunde.Columns(15).Width = 80
For Each Kunde In alterKunde.GetKundenliste
dgvKunde.Rows.Add(zi + 1, Kunde.KundenNr, Kunde.Anrede, Kunde.Nachname, Kunde.Vorname, Kunde.Strasse, Kunde.Hausnummer, Kunde.Hausnummer, Kunde.PLZ, Kunde.Ort, Kunde.Land, Kunde.Telefon, Kunde.Fax, Kunde.Email, Kunde.Kontoinhaber, Kunde.IBAN, Kunde.BIC, Kunde.Bank)
zi = zi + 1
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
End Sub
End Class
Danke euch!