Zum Inhalt springen

[ACCESS] TableExists wird nicht angenommen


Pittiplatsch

Empfohlene Beiträge

Also, das erste Problem hab ich folgendermaßen gelöst:

Private Sub ma_neu_Click()

On Error GoTo Err_ma_neu_Click

Dim fehler As Integer

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim sqlstr As String

'Mußfelder abfragen

If IsNull(Me.ma_vorname) Then

Me.ma_vorname.BackStyle = 1

Me.ma_vorname.BackColor = RGB(200, 200, 200)

fehler = fehler + 1

End If

If IsNull(Me.ma_nachname) Then

Me.ma_nachname.BackStyle = 1

Me.ma_nachname.BackColor = RGB(200, 200, 200)

fehler = fehler + 1

End If

If IsNull(Me.ma_geburt) Then

Me.ma_geburt.BackStyle = 1

Me.ma_geburt.BackColor = RGB(200, 200, 200)

fehler = fehler + 1

End If

If fehler > 0 Then

'Fehlende Angaben melden

MsgBox "Bitte alle Daten korrekt eingeben"

GoTo ende

ElseIf fehler = 0 Then

'Daten prüfen

Set db = CurrentDb()

Set rs = db.OpenRecordset("tbl_Personal")

sqlstr = "SELECT COUNT(*) FROM tbl_Personal WHERE Name='" & ma_nachname & "' AND Vorname='" & ma_vorname & "' "

If (CurrentDb.OpenRecordset(sqlstr, dbOpenDynaset)(0) = 0) Then

'Wenn Daten noch nicht erfasst

rs.AddNew

rs!Vorname = ma_vorname

rs!Name = ma_nachname

rs!Geburtstag = ma_geburt

rs!adresse = ma_adresse

rs!PLZ = ma_plz

rs!Ort = ma_ort

rs.Update

rs.Close

db.Close

Else

MsgBox ("Datensatz bereits erfasst")

End If

End If

Exit_ma_neu_Click:

Exit Sub

Err_ma_neu_Click:

MsgBox Err.Description

Resume Exit_ma_neu_Click

Und das zweite Problem umgeh ich mit 'ner Tabelle, in die die entsprechenden Daten zwischengespeichert werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, die Antwort sollte in meinen anderen Beitrag,

Das Problem mit

if not TableExists(. . .)

hab ich erst so gelöst:

Hab ein Modul erzeugt:

Option Compare Database

Public Const tabellenname = "vorgang_vorab"

Public Function ExistObject(Objektname As String, Typ As Integer) As Boolean

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim ObjTyp As Integer

ExistObject = False

Select Case Typ

Case 0: ObjTyp = 1 'Tabellen

End Select

Set db = CurrentDb()

Set rs = db.OpenRecordset("SELECT Name, Type FROM MSysObjects " & "WHERE Name = '" & Objektname & "' " & "AND Type = " & ObjTyp)

If Not rs.EOF Then rs.MoveLast

ExistObject = IIf(rs.RecordCount = 0, False, True)

rs.Close

Set rs = Nothing

db.Close

Set db = Nothing

Exit_Here:

Exit Function

End Function

In dem Code für das Formular hab ich dann folgendes eingebaut:

Dim db As DAO.Database

Set db = CurrentDb()

Dim Tabelle As DAO.TableDef

If ExistObject(tabellenname, 0) = False Then

Dim lfdNr As Field

Dim person As Field

Dim mass As Field

DoCmd.RunSQL "create table " & tabellenname & " (laufNr TEXT, person Text, mass Text);"

Else

MsgBox "Tabelle existiert"

End If

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...