Hur kan man lista namnen på de tabeller som finns i en Accessdatabas i till exempel en ListBox? Tjena! Tack för det, men om jag redan har ordnat med koppling och DataSet med ADO.Net kan man då ur DataSetet få tabellnamnet? Du använder GetOleDbSchemaTable på din Connection. Vilket retunerar information från din anslutning i form av en DataTable. Tack, det är nästan så det funkar. Det blir fel vid row.Item(column) & vbTab Hur kollar man till exempel de 4 första tecknen i row.Item(column)? Verkar inte gå att använda ...substring(0,4)Lista tabellnamnen
Sv: Lista tabellnamnen
Du kan göra det genom att använda gamla hederliga (och vid det här laget k-märkta) DAO.
<code>
Dim dbe As DAO.DBEngine = New DAO.DBEngine()
Dim dbs As DAO.Database
Dim tDef As TableDef
Dim strFilePath As String
strFilePath = "C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb"
dbs = dbe(0).OpenDatabase(strFilePath)
For Each tDef In dbs.TableDefs
ListBox1.Items.Add(tDef.Name)
Next
dbs.Close()
dbs = Nothing
dbe = Nothing
</code>
Glöm inte att först sätta en referns till: "Microsoft DAO 3.6 Object Library" det funkar nog även med de äldre versionerna som 3.5 och 2.5/3.5 plus ett "imports DAO"Sv: Lista tabellnamnen
Sv: Lista tabellnamnen
Här följer ett exempel vilket listar tabellerna:
<code>
Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program\Microsoft Visual Studio\VB98\NWIND.MDB")
cn.Open()
Dim dtTables As DataTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
Dim row As DataRow
Dim column As DataColumn
For Each column In dtTables.Columns
Debug.Write(column.ColumnName & vbTab)
Next
Debug.WriteLine("")
For Each row In dtTables.Rows
For Each column In dtTables.Columns
Debug.Write(row.Item(column) & vbTab)
Next
Debug.WriteLine("")
Next
</code>Sv: Lista tabellnamnen
Vad kan det vara?
Sedan är jag lite förvirrad. Av de tabeller som listas är det ingen som jag har gjort, alltså inte de som innehåller mina data. Det är enbart dessa jag vill lista.Sv: Lista tabellnamnen
(Problemet ovan funkade om man tar bort vbTab och bara har row.Item(column))