Supportnet Computer
Planet of Tech

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

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

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:

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

Hier die Datenbank:

http://www.fithwor.com/kalender.zip


Gruss Mike

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 ;-)

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

Antwort 7 von Coolpix

kein Problem,
Ist unterwegs....

Greetz ;-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: