Supportnet / Forum / Datenbanken
Problem mit Code
Frage
[code]
Option Compare Database
Option Explicit
Private Sub kalender_Click()
On Error GoTo fehler
Dim db As Database
Dim rs As Recordset
Dim Krit As String
If IsNull(kalender) Then
MsgBox "Bitte Such-ID eingeben."
kalender.SetFocus
Else
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl_kalender", dbOpenSnapshot)
Krit = "DATUM='" & kalender & "'"
rs.FindFirst Krit
If rs.NoMatch Then
MsgBox "Die von Ihnen eingegebene ID wurde in der Datenbank nicht gefunden."
Else
txt_datum = rs!DATUM[/code]
hier ist ein fehler, das heisst, es kommt immer dieser fehler: sie können diesem objekt keinen wert zuweisen.
wie kann ich machen, dass er zu diesem datensatz soll?
[code]
txt_kalender_id = rs!KALENDER_ID
[/code]
[code]
End If
End If
ende:
Exit Sub
fehler:
MsgBox Err.Description
Resume ende
End Sub[/code]
Gruss Mike
Antwort 1 von Fithwor
Hier wird die ID gesucht, bei mir ein Datum.
Bei diesem Beispiel geht es, da die ID bekannt ist. Bei mir geht es nicht, weil er nur das Datum hat, durch den Kalender (Steuerelement)!
Was schlagt ihr vor??
Gruss Mike
Bei diesem Beispiel geht es, da die ID bekannt ist. Bei mir geht es nicht, weil er nur das Datum hat, durch den Kalender (Steuerelement)!
Was schlagt ihr vor??
Gruss Mike
Private Sub Befehl21_Click()
On Error GoTo fehler
Dim db As Database
Dim rs As Recordset
Dim Krit As String
If IsNull(XID) Then
MsgBox "Bitte Such-ID eingeben.", 64, "http://www.access-home.de"
XID.SetFocus
Else
Set db = CurrentDb()
Set rs = db.OpenRecordset("Daten", dbOpenSnapshot)
Krit = "ID='" & XID & "'"
rs.FindFirst Krit
If rs.NoMatch Then
MsgBox "Die von Ihnen eingegebene ID wurde in der Datenbank nicht gefunden.", 64, "http://www.access-home.de"
Else
XNam = rs!Nam
XDat = rs!Dat
XZeit = rs!Zeit
End If
End If
ende:
Exit Sub
fehler:
MsgBox Err.Description
Resume ende
End Sub
Antwort 2 von El Bobbele
Hallo Mike!
Was ist txt_Kalender_ID eigentlich für ein Feld? Ein gebundenes bzw. ungebundenes Textfeld oder ein Autowert? Im letzteren Fall kann kein Wert zugewiesen werden, er wird automatisch erzeugt.
Wenn das Feld Datum vom Typ Datum/Uhrzeit ist, dann kannst du es nicht als Text behandeln. Aus deinem Ausdruck
Krit = "DATUM='" & kalender & "'"
würde am Ende dies werden:
Krit = "Datum='12.03.2004'"
Die FindFirst-Methode erwartet eine SQL-Bedingung ohne das Schlüsselwort WHERE, und bei SQL muss eine Datumsbedingung nun mal so aussehen:
Krit = "Datum=#03/12/2004#
Um das zu erreichen solltest du bei der BuildCriteria-Anweisung bleiben:
Krit = BuildCriteria("Datum",dbDate, kalender)
Gruss El Bobbele
Was ist txt_Kalender_ID eigentlich für ein Feld? Ein gebundenes bzw. ungebundenes Textfeld oder ein Autowert? Im letzteren Fall kann kein Wert zugewiesen werden, er wird automatisch erzeugt.
Wenn das Feld Datum vom Typ Datum/Uhrzeit ist, dann kannst du es nicht als Text behandeln. Aus deinem Ausdruck
Krit = "DATUM='" & kalender & "'"
würde am Ende dies werden:
Krit = "Datum='12.03.2004'"
Die FindFirst-Methode erwartet eine SQL-Bedingung ohne das Schlüsselwort WHERE, und bei SQL muss eine Datumsbedingung nun mal so aussehen:
Krit = "Datum=#03/12/2004#
Um das zu erreichen solltest du bei der BuildCriteria-Anweisung bleiben:
Krit = BuildCriteria("Datum",dbDate, kalender)
Gruss El Bobbele
Antwort 3 von Fithwor
Es funktioniert, doch beim Unterformular bleibt der erste Datensatz 1, es wird ein neuer erstellt. Wie kann ich das lösen?
gruss mike
das ist der code:
gruss mike
das ist der code:
Option Compare Database
Option Explicit
Private Sub kalender_Click()
On Error GoTo fehler
Dim db As Database
Dim rs As Recordset
Dim Krit As String
If IsNull(kalender) Then
MsgBox "Bitte Datum auswählen."
kalender.SetFocus
Else
Set db = CurrentDb()
Set rs = db.OpenRecordset("tbl_kalender", dbOpenSnapshot)
Krit = BuildCriteria("DATUM", dbDate, kalender)
rs.FindFirst Krit
If rs.NoMatch Then
MsgBox "Das Datum wurde nicht gefunden."
Else
txt_datum = rs!DATUM
sfr_termine!KALENDER_ID = rs!KALENDER_ID
sfr_aufgaben!KALENDER_ID = rs!KALENDER_ID
End If
End If
ende:
Exit Sub
fehler:
MsgBox Err.Description
Resume ende
End Sub
Antwort 4 von Fithwor
Antwort 5 von Coolpix
hi Leutz,
ich hab' mir die DB mal angeschaut, ein bisschen rumgefummelt und bei mir funzt's.
Zunächst sollte ma die Beziehungen zw.
tblKalender und den anderen beiden auf 1:n stellen wobei Verknüpfungstyp 1 auszuwählen ist.
Dann liegt der Hauptfehler im frm_Kalender:
Da dieses Formular ja nur vorhandene Daten aus der tblKalender bereitstellen soll (und in diesem Fall kann) muessen in den Formulareigenschafte>Daten die Optionen:
"Daten anfügen" und "Daten loeschen" auf nein gesetzt werden.
Dann klappts...
Greetz ;-)
ich hab' mir die DB mal angeschaut, ein bisschen rumgefummelt und bei mir funzt's.
Zunächst sollte ma die Beziehungen zw.
tblKalender und den anderen beiden auf 1:n stellen wobei Verknüpfungstyp 1 auszuwählen ist.
Dann liegt der Hauptfehler im frm_Kalender:
Da dieses Formular ja nur vorhandene Daten aus der tblKalender bereitstellen soll (und in diesem Fall kann) muessen in den Formulareigenschafte>Daten die Optionen:
"Daten anfügen" und "Daten loeschen" auf nein gesetzt werden.
Dann klappts...
Greetz ;-)
Antwort 6 von Fithwor
Habs ausprobiert, bekomm es nicht fertig, bin am durchdrehen!
Könntest du mir sie mailen?
vielen dank im voraus!
gruss mike
Könntest du mir sie mailen?
vielen dank im voraus!
gruss mike
Antwort 7 von Coolpix
kein Problem,
Ist unterwegs....
Greetz ;-)
Ist unterwegs....
Greetz ;-)