PDA

Vollständige Version anzeigen : ADO: Prüfen, ob Tabelle vorhanden ist (auch mySQL)


Julegner
18.09.2006, 13:39
Public Sub openRS(ByRef RS As ADODB.Recordset, Tabellenname As String, Optional Connectionstring)

With RS
If IsMissing(Connectionstring) Then
.ActiveConnection = CurrentProject.Connection
Else
.ActiveConnection = Connectionstring
End If
.LockType = adLockOptimistic
.CursorType = adOpenForwardOnly
.Open Tabellenname
End With
End Sub

Public Function TableExists(ByVal strTableName As String, Optional mySQLDB) As Boolean
Dim RS As New ADODB.Recordset

If IsMissing(mySQLDB) Then
mySQLDB = False
End If
If mySQLDB Then
On Error Resume Next
openRS RS, strTableName, BuildMySQLConnection
TableExists = (Err.Number = 0)
RS.Close: Set RS = Nothing
Else
On Error Resume Next
Debug.Print CurrentData.AllTables(strTableName).Name
TableExists = (Err.Number = 0)
End If
End Function


Mit TableExists kann geprüft werden, ob eine Tabelle existiert. Das funktioniert auch mit nicht-Jet-Datenbanken wie mySQL.

FW
27.09.2006, 22:14
... sag mal, was haust Du hier denn für Schnipsel rein?! Deine Code-Beispiele sind so gar nicht lauffähig und offensichtlich unvollständig (was ist z. B. "BuildMySQLConnection"). Auch hier gibt es wohl 'ne Menge zu erklären, wie auch in Deinem anderen Beitrag (http://www.ms-office-forum.net/forum/showthread.php?t=195383)
Ich empfinde Deine Beispiele so als völlig unausgegoren somit nutzlos.
Testest Du das, was Du hier anbietest eigentlich? Mir drängt sich die Vermutung auf, dass Du irgendwelche Beispiele von irgendwoher aus dem Zusammenhang kopierst und hier reinstellst, was nicht Sinn der Sache ist!
Mit solchen Beiträgen müllst Du nur das Forum voll und irritierst die Leser, aber hilfst niemanden...

J_Eilers
28.09.2006, 07:31
Hi,

ich würde es nicht ganz so drastisch ausdrücken, aber ein wenig mehr Beschreibung, auch wofür man den Code verwenden kann, wäre schon schön. ;)

Julegner
28.09.2006, 09:18
Das sind Teile aus einem selbstgeschriebenen Programm und damit sehr wohl lauffähig.
Ich muß allerdings zugeben,daß ich den Code vor dem Posten nochmal auf Nutzbarkeit in allgemeineren Umgebungen prüfen muß.

Übrigens ist "BuildMySQLConnection" genau die Funktion, die in dem anderen Beitrag beschrieben wird und eben einen mySQL-Connection-String zusammenbaut.

Mit den in diesem Beitrag gezeigten Funktionen kann man Tabellen über Recordsets öffnen und Prüfen, ob eine Tabelle existiert.

FW
28.09.2006, 10:47
...
Mit den in diesem Beitrag gezeigten Funktionen kann man Tabellen über Recordsets öffnen und Prüfen, ob eine Tabelle existiert.
Genau das kann man/frau eben nicht!
Übrigens ist "BuildMySQLConnection" genau die Funktion, die in dem anderen Beitrag beschrieben wird
Ach so, das wahr natürlch blöd von mir, das nicht sofort zu erkennen. :confused:
Im Ernst: Irritierend ist eben auch, dass Du im Abstand von über einer Woche zwei verschiedene Beiträge verfasst, die offensichtlich zusammengehören. Wer soll das ahnen und warum trennst Du diese Beiträge, wenn diese doch in Zusammenhang stehen? Das verwirrt und hilft niemanden.
Um das nochmal deutlich zu sagen: Deine Beiträge sind so, wie Du sie verfasst hast, nicht zu gebrauchen...

Julegner
28.09.2006, 11:08
Gehts vielleicht ein bißchen genauer?

Kritik ist die eine Sache, aber einfach draufhauen ohne auch nur im geringsten anzudeuten, wo noch Informationen fehlen, ist einfach nur bashing und dürfte eher dazu führen, daß einem die Lust vergeht, Beispiele hier reinzustellen.

edit: habe eben das edit gesehen.

edit2:
ich habe die Beiträge nicht absichtlich getrennt,sondern erst im nachhinein gemerkt, daß bei diesem Beitrag noch Informationen fehlten. Ich hatte auch überlegt, das hier reinzuschreiben, aber ich dachte mir, daß die Informationen allgemeiner nutzbar wären und außerdem trotz des Zeitlichen Abstands noch ziemlich nahe beieinander waren,so daß man den Zusammenhang hätte erkennen können.

edit3:


Deine Beiträge sind so, wie Du sie verfasst hast, nicht zu gebrauchen...


Dann gib mir bitte einen Tip, wie ich es besser machen könnte.

FW
28.09.2006, 17:48
... wie schon gesagt: selber testen, lauffähig machen bzw. Voraussetzungen benennen, unter denen das ganze dann läuft!
noch ziemlich nahe beieinander waren,so daß man den Zusammenhang hätte erkennen können
Einfach im selben Thread hinterlegen und keinen neuen anlegen.
ich habe die Beiträge nicht absichtlich getrennt,sondern erst im nachhinein gemerkt, daß bei diesem Beitrag noch Informationen fehltenGenau das zeigt, wie Du arbeitest! Hier sollen Beiträge her, die im Wesentlichen funktionieren und nicht hektisch gepostete Schnipsel...

TommyK
28.09.2006, 18:33
Jetzt macht aber mal einen Punkt Ihr Beiden.
Das ist hier das Codearchiv und nicht der Boxring.
Wenn es Probleme mit diesem Thread gibt dann klärt das in einem neuen Thread im Access-Forum oder informiert die Moderatoren um z.B. Threads zusammen zulegen.
Deshalb werde ich diesen Thread erstmal schliessen.
Die Kritik die FW macht ist sicherlich angebracht aber der Ton stimmt hier nicht.

@FW
Du bringst Deine Kritik etwas moderater an den Mann bzw Frau.

@Julegner
Und Du kommentierst bitte Deine Bsp. ausführlicher.