hey leute
ich habe eine datenbank (access) mit mehreren Tabellen, die verknüpft sind. des weiteren habe ich in der datenbank ein modul mit 2 Funkitionen.
In access kann ich ja die fuktionen direkt über SQL aufrufen.
Nun sollen die daten aber in vb angezeigt werden. dafür übergebe cih mit OleDb den SQL string an die datenbank.
Es wird mir aber der Fehler zurückgegeben , das die angegebene funktion nicht gefunden werden kann
Mein code ist wie folgt:
der dazugehörende SQL string Lautet wie folgt:
logischer weise habe ich ihn so modifiziert das ich ihn in vb ein setzen kann
Ich hoffe Ihr könnt mir bei meinem Problem helfen
lg Papst94
ich habe eine datenbank (access) mit mehreren Tabellen, die verknüpft sind. des weiteren habe ich in der datenbank ein modul mit 2 Funkitionen.
In access kann ich ja die fuktionen direkt über SQL aufrufen.
Nun sollen die daten aber in vb angezeigt werden. dafür übergebe cih mit OleDb den SQL string an die datenbank.
Es wird mir aber der Fehler zurückgegeben , das die angegebene funktion nicht gefunden werden kann
Mein code ist wie folgt:
VB.NET-Quellcode
- Sub sql(ByVal command As String, ByVal tabel As String, ByVal dgv As DataGridView)
- Try
- Dim conn As New OleDb.OleDbConnection()
- Dim cmd As New OleDb.OleDbCommand()
- Dim da3 As New OleDb.OleDbDataAdapter(cmd)
- 'Dim ds3 As New DataSet
- conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MDIParent1.xml("//Settings/Verbindung/Datenbankpfad") & ";"
- cmd.Connection = conn
- cmd.CommandText = command
- conn.Open()
- da3.Fill(ds, tabel)
- conn.Close()
- dgv.DataSource = ds.Tables(tabel)
- dgv.Refresh()
- Catch ex As Exception
- MsgBox(ex.InnerException)
- End Try
- End Sub
der dazugehörende SQL string Lautet wie folgt:
SQL-Abfrage
- SELECT tblPersonen.perVorname, tblPersonen.perNachname, tblPersonen.perStrasse, tblPersonen.perPLZ, tblPersonen.perOrt, tblPersonen.perDatumGeburt, tblPersonen.perSchwimmer, tblPersonen.perGeschlecht, GanzeJahre([tblPersonen].[perDatumGeburt],Now()) AS [Alter], MergeField("tblKontaktdaten","konTelefon","konperIDRef =",[tblKontaktdaten].[konperIDRef],True) AS Telefonnummern, MergeField("tblKontaktdaten","konEmail","konperIDRef =",[tblKontaktdaten].[konperIDRef],True) AS [E-Mail Adressen]
- FROM (tblStati INNER JOIN (tblPersonen INNER JOIN (tblFreizeiten INNER JOIN tblTeilnahmen ON tblFreizeiten.frzID = tblTeilnahmen.tnmfrzsemIDRef) ON tblPersonen.perID = tblTeilnahmen.tnmperIDRef) ON tblStati.staID = tblTeilnahmen.tnmstaIDRef) INNER JOIN tblKontaktdaten ON tblPersonen.perID = tblKontaktdaten.konperIDRef
- GROUP BY tblPersonen.perVorname, tblPersonen.perNachname, tblFreizeiten.frzName, tblStati.staName, tblPersonen.perStrasse, tblPersonen.perPLZ, tblPersonen.perOrt, tblPersonen.perDatumGeburt, tblPersonen.perSchwimmer, tblPersonen.perGeschlecht, MergeField("tblKontaktdaten","konTelefon","konperIDRef =",[tblKontaktdaten].[konperIDRef],True), MergeField("tblKontaktdaten","konEmail","konperIDRef =",[tblKontaktdaten].[konperIDRef],True)
- HAVING (((tblFreizeiten.frzName)="Schlossfreizeit") AND ((tblStati.staName)="Mitarbeiter")) OR (((tblFreizeiten.frzName)="Schlossfreizeit") AND ((tblStati.staName)="Leiter"));
logischer weise habe ich ihn so modifiziert das ich ihn in vb ein setzen kann
Ich hoffe Ihr könnt mir bei meinem Problem helfen
lg Papst94