Hallo Zusammen da bin ich wieder, wie eine schlechte Angewohnheit.
Ich habe mir für ein spezielles Problem eine IF Abfrage konstruiert.
Über ein Formular gebe ich den Wert Me!PfadName vor, aber zum
eigentlichen Programmablauf kommt es nicht. Zum einen wird die IF
Bedingung gar nicht erst ausgeführt und der ELSE Zweig kommt mit
einer Fehler Meldung
Laufzeifehler 3464
Datentypen in Kriterienausdruck unverträglich
Sehe ich den Wald mal wieder vor lauter Bäumen nicht ?
Dim TabName As String
TabName = Me![TabName]
If Table_Exist(TabName) Then
Nix = MsgBox("Tabelle existiert bereits !", vbCritical, "Abbruch")
DoCmd.Hourglass False
Exit Sub
Else
sqlCNT = "SELECT * INTO " & TabName & " " & _
" FROM Mve_Stab_Gesamt" & _
" WHERE Mve_Stab_Gesamt.ID = 0"
Debug.Print sqlCNT
DoCmd.RunSQL sqlCNT
End If
D A N K E !!!
B E N
Hallo,
die IF-Bedingung wird doch ausgeführt , wenn der Else-Abschnitt durchlaufen wird...
Welchen Datentyp hat "ID" in der Tabelle "Mve_Stab_Gesamt" ?
Wie heißt ein Tabellename genau(!), wenn der "Fehler" auftaucht?
Sub Irgendwas ()
Dim TabName As String, sqlCNT As String
If Len(nz(Me![TabName],"")) = 0 Then Exit Sub
TabName = Me![TabName]
If Table_Exist(TabName) Then
MsgBox "Tabelle existiert bereits !", vbCritical, "Abbruch"
DoCmd.Hourglass False
Exit Sub
Else
sqlCNT = "SELECT * INTO " & TabName & _
" FROM Mve_Stab_Gesamt" & _
" WHERE Mve_Stab_Gesamt.ID = 0"
Debug.Print sqlCNT
DoCmd.RunSQL sqlCNT
End If
End Sub
Hallo,
eine kleine Frage von meiner eins:
Table_Exist(TabName)
was bitte ist das, bzw. wie lautet der Code dieser Function dahinter ?
Hallo Peter (database)
ich habe die Funktion Table_Exist aus einem anderen Beispielprogramm übernommen. Habe mal den dazugehörigen Code beigelegt.
Function Table_Exist(tbl As String) As Integer
Table_Exist = SysCmd(SYSCMD_GETOBJECTSTATE, acTable, tbl)
End Function
Danke
B E N
Hallo,
hab's befürchtet - diese Function liefert als Rückgabewert eine Integerzahl und keinen Wahrheitswert!
Du kannst diese NICHT in einer Bedingung verwenden, wenn diese als Antwort Wahr oder Falsch erwartet (wie in deinem Fall)!
Verwende statt deiner Table_Exist - Function folgende:
Function Tabel_Exist(strTableName As String) As Boolean
If DCount("*", "MSysObjects", "Name='" & strTableName & "'") Then
Tabel_Exist = True
Else
Tabel_Exist = False
End If
End Function
...die liefert wahr oder falsch zurück und wird entsprechend auch in deiner Bedingung funktionieren.
Den Rest entsprechend den Tipps von DF6GL!
HTH
Hallo,
viele Dank an Peter(database) und DF6GL. Kaum macht mans Richtig, klappts auch ;-))
Vielen dank für eure schnelle Hilfe
B E N
Aber bitte, keine Ursache! ;)
Bitte den Thread in DEINEM Startbeitrag auf 'gelöst' setzen - DANKE