Datenbank-Programmierung

Hallo,
da ich von Visual Basic und Access keine Ahnung habe, aber für meinen Job eine „kleine“ Datenbankabfrage benötige, stehe ich vor einem Problem.
In eine Datenbank sollen neue Daten eingegeben werden können, Datensätze gelöscht und natürlich nach Datensätzen gesucht werden können.
Es funktioniert, dass ich neue Datensätze hinzufügen und Datensätze löschen kann. Leider funktioniert die Suche nicht. Zum Testen habe ich bislang 4 Textfelder mit dem Datensteuerelement verbunden. Die Datenbank heißt „TestDB“. Weitere Textfelder sollen noch folgen, so insgesamt ca. 25.

Hier einmal der Quellcode für Neue Datensätze erfassen, Datensätze löschen und Datensätze suchen, so wie ich es bislang habe:

Private Sub cmdLöschen_Click()
Mldg = „Möchen Sie den aktuell ausgewählten Datensatz wirklich löschen?“
Stil = vbYesNo + vbCritical + vbDefaultButton2
Titel = „Löschen von Datensätzen“
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, KTXT)
If Antwort = vbYes Then
TestDB.Recordset.Delete
TestDB.Recordset.MoveNext
Else
End If
End Sub

Private Sub cmdNeu_Click()
TestDB.Recordset.AddNew
End Sub

Private Sub Command1_Click()
T$ = InputBox$(„Geben Sie die Auftragsnummer ein:“, „SQL“, „Auftragsnummer=’’“)
T$ = "Select * from Datenbank where " + T$
TestDB.RecordSource = T$
TestDB.Refresh
End Sub

Es erscheint immer ein „Laufzeitfehler 3251“ und die Zeile TestDB.Refresh ist gelb hinterlegt.
Es wäre super wenn mir jemand dabei helfen könnte.

Gruß
SV

Hallo SV,

da ich von Visual Basic und Access keine Ahnung habe,

dann sind wir gleichgut :smile:

probier mal dieses:

TestDB.Recordset.Refresh

Wenn das nix bringt, zeige mal hier was angezeigt wird wenn du bei der Fehlermeldung auf Hilfe klickst in dem meldungsfenster.

Vielleicht stecken da Informationen drin die Wissende deuten können, auch ohne Access zu haben.

Gruß
Reinhard

Hi
ich kann dir nur sagen, das die Accessdatenbank keine Formatierungen und Schlüssel enthalten sollte. Auch die Felder sollten so definiert sein, das beim Zugriff oder Eintrag nicht auf einmal ein Wort in ein Zahlenfeld eingetragen wird. Sowas verursacht alles Laufzeitfehler, die du dann abfangen müsstest.

Falls du nicht weiterkommst, kann ich dir mal meine Recordset verbindung geben.

Es gibt aber auch genug Beispiele dazu im Internet schon mit einer Accesdatenbank in Verbindung. Das erleichtert vieles finde ich, weil die Anbindung schon steht.

Mfg Werner

HI
ich glaub du musst auch erst den Wert abspeichern den du übergibst.

TestDB.Update glaub ich heisst der, muss vor die Zeile mit dem Refresh.

So wies momentan da steht, übergibst du den Wert an das Recordset,
aber du willst schon Refreshen, bevor du den Wert überhaupt fest eingetragen hast.

Probier das mal.

Mfg Werner

Hallo,

hat leider auch nicht funktioniert.
Vielleicht gibt es auch eine andere Möglichkeit, eine AccessDatenbank abzufragen, das wird ja sicherlich nicht die einzige sein.

Gruß

Sascha

Hallo,

ich bin kein VB-Experte, da ich alles mit Access erledige. Da ist das ganz einfach. Muss es denn ein VB-Programm sein? Ansonsten würde es sich doch anbieten gleich mit Access zu arbeiten. Da kannst Du mit einer speziell gestalteten Abfrage ( die die Suchkriterien aus Deinem Feld übernimmt) die Datensatzanzeige ganz einfach steuern und die Anzeige der Datensätze in einem Formular ist auch einfach.

Hallo,

noch einer der sich mit Access-VBA nicht auskennt. :smile: Ich hab’s eher mit VB.

Mir ist ein Fehler aufegfallen, Du hast dich vertippt.

Das hier:

T$ = InputBox$(„Geben Sie die Auftragsnummer ein:“, „SQL“, „Auftragsnummer=’’“)
T$ = "Select * from Datenbank where " + T$

Sollte sicher heißen:

T$ = InputBox$(„Geben Sie die Auftragsnummer ein:“, „SQL“, „Auftragsnummer=’’“)
T$ = "SELECT * FROM Datenbank WHERE Auftragsnummer = " + T$ + „;“

Gruß Rainer

Hi
schick mir mal das Projekt an [email protected].

Mfg Werner