Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datentypfehler

Begonnen von Frank77, Januar 19, 2015, 11:43:51

⏪ vorheriges - nächstes ⏩

Frank77

Hallo!

ich hab da einen datentyp fehler in der prozedur
beide daten aus den tabelen sind ein long
schreibe ich Dim lngV_ID As Long dann ist in der zeile lngV_ID = "SELECT tb.... laufzeitfehler 13
schreibe ich Dim lngV_ID As Variant klappts nur ist dann in der zeile
.Recordset.FindFirst "[Veranstalter_ID] = " & lngV_ID die fehler meldung Syntaxfehler

    Dim Frm As Form
    Dim lngV As Long
    Dim lngV_ID As Long
    Set Frm = Forms!frm_Veranstaltung
    lngV = InputBox("Bitte geben Sie eine Veranstaltung´s ID  ein", "Veranstaltung´s Suche")
    lngV_ID = "SELECT tbl_Veranstaltung.Veranstaltung_Veranstalter_IDRef" & _
            " From tbl_Veranstaltung" & _
            " WHERE tbl_Veranstaltung.Veranstaltung_ID = " & lngV
    If Nz(lngV_ID, 0) > 0 Then
        With Frm
            If .FilterOn = True Then .FilterOn = False
            .Recordset.FindFirst "[Veranstalter_ID] = " & lngV_ID
        End With
        Me.Recordset.FindFirst "[Veranstaltung_ID] = " & lngV
    Else
        MsgBox "Die Veranstaltungs ID ist nicht vorhanden!", vbInformation Or vbOKOnly, "nicht Vorhanden!"
    End If


Zum vergleich in der prozedur klappt alles
Private Sub lst_Suchergebnis_DblClick(Cancel As Integer)
'Sub Verbessert
    Dim Z As Integer
    Dim Msg As String
    Dim Frm As Form
    If fncPruefen Then
        For Z = 0 To lst_Suchergebnis.ListCount - 1
            If Me!lst_Suchergebnis.Selected(Z) = True Then
                Set Frm = Forms!frm_Veranstaltung
                With Frm
                    If .FilterOn = True Then .FilterOn = False
                    .Recordset.FindFirst "[Veranstalter_ID] = " & Me!lst_Suchergebnis.Column(2)
                End With
                Me.Recordset.FindFirst "[Veranstaltung_ID] = " & Me!lst_Suchergebnis.Column(0)
            End If
        Next Z
        Me!lst_Suchergebnis = Null
        Me!txt_Suche.SetFocus
        Me!lst_Suchergebnis.Visible = False
    End If
End Sub


gruß Frank
Selbstständig = Selbst und Ständig

MaggieMay

Hi,lngV_ID = "SELECT tb....dies ist eine Stringzuweisung, wie unschwer zu erkennen ist. Zum Ausführen der Abfrage kannst du bspw. die OpenRecordset-Methode einsetzen.
Das sähe dann so aus:lngV_ID = CurrentDB.OpenRecordset("SELECT tbl_Veranstaltung.Veranstaltung_Veranstalter_IDRef" & _
            " From tbl_Veranstaltung" & _
            " WHERE tbl_Veranstaltung.Veranstaltung_ID = " & lngV)(0)

Dann hast du aber ein Problem, wenn die ID nicht vorhanden ist. Besser, du lässt die ID per Kombifeld auswählen, damit du sicher sein kannst, dass es auch einen Datensatz dazu gibt.
Freundliche Grüße
MaggieMay

Frank77

Hi!

ok des war vor dem ersten kaffee wohl peilich :-)
ich hab im leichtsinn versucht das DLookup zu umgehen  ;D

Danke MaggieMay
Selbstständig = Selbst und Ständig

MaggieMay

Ok, DLookUp empfiehlt sich, wenn du nicht sicher bist, ob etwas gefunden wird.
Das sähe dann so aus:    lngV_ID = NZ(DLookUp("Veranstaltung_Veranstalter_IDRe f", "tbl_Veranstaltung", "Veranstaltung_ID = " & lngV), 0)
    If lngV_ID > 0 Then
Freundliche Grüße
MaggieMay