Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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

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...