Pittiplatsch Geschrieben 7. April 2005 Teilen Geschrieben 7. April 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 7. April 2005 Autor Teilen Geschrieben 7. April 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 7. April 2005 Teilen Geschrieben 7. April 2005 Schau mal hier: http://www.microsys-kramer.de/news/tipp_dezember_2002_2.php Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 12. April 2005 Autor Teilen Geschrieben 12. April 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JayN Geschrieben 19. April 2005 Teilen Geschrieben 19. April 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 26. April 2005 Autor Teilen Geschrieben 26. April 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pittiplatsch Geschrieben 26. April 2005 Autor Teilen Geschrieben 26. April 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.