Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[ACCESS] TableExists wird nicht angenommen

Empfohlene Antworten

Veröffentlicht

Ich möchte in Access 2000 gerne per VBA prüfen, ob eine Tabelle bereits vorhanden ist oder nicht.

In Excel läuft das über den Befehl

if not TableExists(. . .)

Dieser Befehl wird bei mir in Access aber nicht akzeptiert.

Welchen Befehl muß ich in Access verwenden.

Hab jetzt ne Lösung und gleich ein neues Problem.

Das Programm sagt mir jetzt zwar an, ob die Tabelle vorhanden ist, aber wie kann ich jetzt eine Tabelle mit mehreren Feldern erzeugen

Hi Wolle,

DoCmd.RunSQL "CREATE TABLE Kunden2 (Vorname TEXT, Nachname TEXT, DsID INTEGER CONSTRAINT Einschraenkung PRIMARY KEY);"

Funktioniert Prima, DANKE :uli

Hab jetzt nur das Problem mit der laufenden Nummer.

Wie kann ich mit VBA einen AutoWert erzeugen.

Könntest Du bitte die Lösung auf Dein erstes Problem hier posten? Dann haben die anderen auch etwas davon.

Ich habe z.B. zur Zeit auch das gleiche Problem.

Gruß

JayN

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.