Abrufen einer Liste von Tabellen aus der Access-Datenbank<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich versuche, ein Benutzerformular im Application Builder zu erstellen, indem ich native Funktionen verwende und warum nicht, JSL. Ich habe die Ideen und jetzt muss ich weitermachen...
Firstable, weiß jemand, wie ich eine Liste aller Tabellen in meiner Access-Datenbank erhalten kann? Natürlich wäre diese Liste auf dem Benutzerformular.
Vielen Dank für Ihre Unterstützung, ich fange an, JMP 11 zu manipulieren.
Betreff: Abrufen einer Liste von Tabellen aus der Access-Datenbank- Erstellen Sie ein Modul in Access und fügen Sie diesen Code ein.
- Im Debug-Fenster ausführen
- Kopieren Sie die generierte Tabellenliste in das Direktfenster.
Public Sub List_fields_in_tables()
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" Then
Debug.Print
Debug.Print
Debug.Print tdf.Name
Debug.Print "----------------------------------------"
For Each fld In tdf.Fields
Debug.Print fld.Name & Space(20 - Len(fld.Name)) & fld.Size & Space(10 - Len(Str(fld.Size))) & FDataType(fld.Type)
Next fld
End If
Next tdf
End Sub
Private Function FDataType(intType As Integer) As String
Dim RetString As String
Select Case intType
Case 1
RetString = "Boolean"
Case 8
RetString = "Date"
Case 3
RetString = "Integer"
Case 7
RetString = "Double"
Case 10
RetString = "String"
Case 4
RetString = "Long Integer"
Case Else
RetString = "Unknown"
End Select
FDataType = RetString
End Function

Betreff: Abrufen einer Liste von Tabellen aus der Access-DatenbankDanke Erich,
Nur um ganz klar und vollständiger zu sein, habe ich dann dieses verwendet:
"MSysNameMap.Name AUS MSysNameMap AUSWÄHLEN WO (MSysNameMap.Type = 1)"
und dann:
für jede Zeile (List1 << append(:Name))
--> funktioniert perfekt!
Danke nochmal.
Betreff: Abrufen einer Liste von Tabellen aus der Access-DatenbankDie meisten Datenbanken haben Systemansichten, für die Sie SQL-Abfragen schreiben können, um Listen aller Tabellen in der Datenbank zu erhalten, die mit einer WHERE-Klausel usw. übereinstimmen.Ich habe kein MS Access, aber bei einigen Google-Suchen könnte so etwas für Sie funktionieren:
SELECT MSysObjects.Name FROM MSysObjects WO (MSysObjects.Type = 1);
Sie könnten auch versuchen " WO (MSysObjects.Type = 6) " als WHERE-Klausel.Sie könnten also die JSL verwenden Datenbank öffnen Funktion, um diese Abfrage an MS Access zu senden, wodurch Sie eine JMP-Datentabelle mit den Access-Tabellennamen darin erhalten würden, die Sie dann iterieren könnten Für jede Reihe.
Hier sind Links, wo ich die MS Access-Informationen gefunden habe:
ms access - SQL-Anweisung, um alle Felder aus allen Tabellen zurückzugeben
Verwenden von MsysObjects
HTH,
Erich
Betreff: Abrufen einer Liste von Tabellen aus der Access-DatenbankIch danke Ihnen für Ihre Hilfe.
Dies ist eine Hilfedatei, mit der Sie eine Verbindung zu einer Datenbank herstellen können. Ich möchte mir eine Liste aller in meiner Datenbank verfügbaren Tabellennamen erstellen.
etwas wie:
x=Liste()
für jede tabledef in my_database
x1<
Einfügen in (x, x1);
schließlich ist es ein bisschen kompliziert. Ich möchte automatisch eine SQL-Anweisung mit dem erstellen, was in einer JMP-Tabelle gespeichert ist. Fast fertig, da bin ich mir sicher... . Aber im Schritt davor möchte ich es Benutzern ermöglichen, Informationen einfach in dieser JMP-Tabelle zu speichern. Er muss in zwei Listen auswählen, zuerst die Tabelle in der Datenbank, dann das ihn interessierende Merkmal in dieser Tabelle. Durch Klicken auf „OK“ wird seine Auswahl dann in der JMP-Tabelle gespeichert. Ich kann dann eine SQL-Anweisung kompilieren, um Daten aus der Datenbank für alle in dieser JMP-Tabelle gespeicherten Auswahlmöglichkeiten abzurufen.
Hoffe, ich bin klar ... ehrgeizig?
Betreff: Abrufen einer Liste von Tabellen aus der Access-Datenbankhttp://www.jmp.com/software/whitepapers/pdfs/102427_jmp_odbc.pdf
Ich habe dies online gefunden und es bietet Schritt-für-Schritt-Anweisungen zum Herstellen einer Verbindung zwischen einer Datenbank und JMP, und Sie können es von dort aus übernehmen.
Grüße
Utag