Hallöchen,
ich habe da ein paar Probleme.
Also ich habe da eine Datenbank (database.mdb) die drei Tabellen hat (Mitarbeiter, Arbeitsort und WerWoWannWieviel).
In der Tabelle Mitarbeiter sind die ganzen Miterabeiterdaten enthalten also zum Beispiel, Nachname, Vorname, Adresse und so weiter.
In der Tabelle Arbeistort sind dann die Arbeitsorte enthalten.
Die Tabelle WerWoWannWieviel enthält folgende Felder:
Datum
Nachname
Vorname
Arbeitsort
Betrag
Der Nachname, Vorname und der Arbeitsort werden aus den zwei anderen Tabellen geholt. Dann kann man das Datum und den Betrag noch zusätzlich eingeben.
Nun kann ich mit folgendem SQL-Befehl
SELECT Datum, Arbeitsort, SUM (Betrag) AS Gesamtbetrag FROM WerWoWannWieviel GROUP BY Datum, Arbeitsort
die Beträge addieren, die am selben Tag am selben Arbeitsort reingekommen sind.
Mit Hilfe des Visual Data Manager funktioniert dieser SQL-Befehl auch. Doch jetzt will ich diesen Befehl, also somit die zusammengezählten Beiträge in einen String speichern, meinetwegen auch in einem Double, wenn dass besser ist.
Wie kann ich dass denn im Visual Basic machen? Wie muß denn der Quelltext dazu aussehen. Das ganze soll dann innerhalb des folgenden Quelltextes geschehen:
Private Sub Command1_Click()
Dim Eingabe1 As String
Dim Eingabe2 As String
Dim SQLKommando As String
Eingabe1 = Textfeld1.Text
Eingabe2 = Textfeld3.Text
...
End Sub
Der String "SQLKommando" soll dann den addierten Betrag enthalten. Ich habe da schon ein bisschen rum experimentiert und habe es mit folgendem Code probiert:
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim SQLKommando As String
Set Rs = New ADODB.Recordset
Set Cn = New ADODB.Connection
SQLKommando = "SELECT Datum, Arbeitsort, SUM (Betrag) AS " & _
"Gesamtbetrag FROM WerWoWannWieviel GROUP BY Datum, Arbeitsort"
With Cn
.Provider = "Microsoft.Jet.OLEDB.3.51;"
.ConnectionString = "C:\pfad\database.mdb"
.Open
End With
With Rs
.Source = SQLKommando
.ActiveConnection = Cn
.Open
End With
Textfeld9.Text = "Der gesammt Betrag ist: " & _
Rs.Fields("Betrag").Value & " Euro"
Rs.Close
Cn.Close
Nun würde der Betrag nicht in einen String gespeichert, sondern gleich in ein Textfeld schreiben, was ich eigentlich auch will.
Aber das klappt nicht so ganz. Irgendetwas stimmt da nicht, kommt immer folgende Fehlermeldung:
Laufzeitfehler '3265'
Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden.
Kann mir da bitte jemand helfen und evtl. den richtigen Code hinschreiben?
Ich muß dazu sagen das ich ein Anfänger bin, der noch nicht soviel mit Visual Basic gearbeitet hat.
Grüssle und einen großen Dank im voraus
Christian
ich habe da ein paar Probleme.
Also ich habe da eine Datenbank (database.mdb) die drei Tabellen hat (Mitarbeiter, Arbeitsort und WerWoWannWieviel).
In der Tabelle Mitarbeiter sind die ganzen Miterabeiterdaten enthalten also zum Beispiel, Nachname, Vorname, Adresse und so weiter.
In der Tabelle Arbeistort sind dann die Arbeitsorte enthalten.
Die Tabelle WerWoWannWieviel enthält folgende Felder:
Datum
Nachname
Vorname
Arbeitsort
Betrag
Der Nachname, Vorname und der Arbeitsort werden aus den zwei anderen Tabellen geholt. Dann kann man das Datum und den Betrag noch zusätzlich eingeben.
Nun kann ich mit folgendem SQL-Befehl
SELECT Datum, Arbeitsort, SUM (Betrag) AS Gesamtbetrag FROM WerWoWannWieviel GROUP BY Datum, Arbeitsort
die Beträge addieren, die am selben Tag am selben Arbeitsort reingekommen sind.
Mit Hilfe des Visual Data Manager funktioniert dieser SQL-Befehl auch. Doch jetzt will ich diesen Befehl, also somit die zusammengezählten Beiträge in einen String speichern, meinetwegen auch in einem Double, wenn dass besser ist.
Wie kann ich dass denn im Visual Basic machen? Wie muß denn der Quelltext dazu aussehen. Das ganze soll dann innerhalb des folgenden Quelltextes geschehen:
Private Sub Command1_Click()
Dim Eingabe1 As String
Dim Eingabe2 As String
Dim SQLKommando As String
Eingabe1 = Textfeld1.Text
Eingabe2 = Textfeld3.Text
...
End Sub
Der String "SQLKommando" soll dann den addierten Betrag enthalten. Ich habe da schon ein bisschen rum experimentiert und habe es mit folgendem Code probiert:
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim SQLKommando As String
Set Rs = New ADODB.Recordset
Set Cn = New ADODB.Connection
SQLKommando = "SELECT Datum, Arbeitsort, SUM (Betrag) AS " & _
"Gesamtbetrag FROM WerWoWannWieviel GROUP BY Datum, Arbeitsort"
With Cn
.Provider = "Microsoft.Jet.OLEDB.3.51;"
.ConnectionString = "C:\pfad\database.mdb"
.Open
End With
With Rs
.Source = SQLKommando
.ActiveConnection = Cn
.Open
End With
Textfeld9.Text = "Der gesammt Betrag ist: " & _
Rs.Fields("Betrag").Value & " Euro"
Rs.Close
Cn.Close
Nun würde der Betrag nicht in einen String gespeichert, sondern gleich in ein Textfeld schreiben, was ich eigentlich auch will.
Aber das klappt nicht so ganz. Irgendetwas stimmt da nicht, kommt immer folgende Fehlermeldung:
Laufzeitfehler '3265'
Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden.
Kann mir da bitte jemand helfen und evtl. den richtigen Code hinschreiben?
Ich muß dazu sagen das ich ein Anfänger bin, der noch nicht soviel mit Visual Basic gearbeitet hat.
Grüssle und einen großen Dank im voraus
Christian