Kan man på något sätt visa alla tabeller ur en databas bara genom att ange odbc källan ? Jag vet inte riktigt vad du menar med att se tabellerna bara genom att ange ODBC källan, men visst kan man lista alla tabeller i en databas. Jag vet iofs inte om och isf hur man gör i Access, men i SQL Server kan man göra det med följande SQL sats: ODBC kopplar bara upp mot databasen..... Jorå..jag förstår att man måste använda en select-sats.. men om man nu inte vet tabellnamnen , kan man få fram dessa på något sätt. Och ja det är en Access databas. Du kan använda dig av:<br> du kan testa detta:Visa ALLA Tabeller
Skulle ju vara både fiffigt och farligt....Sv: Visa ALLA Tabeller
SELECT name FROM sysobjects WHERE xtype = 'U'Sv: Visa ALLA Tabeller
Tabellerna moste du anropa från programmet med en select sats.
tex: tabeller="Select * from tab1, tab2"Sv: Visa ALLA Tabeller
Sv: Visa ALLA Tabeller
Set rsTemp = con.OpenSchema(adSchemaTables)<br>
<br>
Här kommer ett exempel som fyller en lisview med recordsetet:<br>
<code>
Private Sub Form_Load()
Dim con As ADODB.Connection
Dim rsTemp As ADODB.Recordset
Dim fldField As Field
Dim Index As Integer
Dim Item As ListItem
Set con = New ADODB.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.3.51;" + _
"Data Source=C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
Set rsTemp = con.OpenSchema(adSchemaTables)
ListView1.View = lvwReport
ListView1.ColumnHeaders.Clear
For Each fldField In rsTemp.Fields
ListView1.ColumnHeaders.Add , fldField.Name, fldField.Name
Next
Do Until rsTemp.EOF
For Each fldField In rsTemp.Fields
If Index Then
Item.SubItems(Index) = "" & fldField.Value
Else
Set Item = ListView1.ListItems.Add(, , "" & fldField.Value)
End If
Index = Index + 1
Next
Index = 0
rsTemp.MoveNext
Loop
End Sub
Private Sub Form_Resize()
ListView1.Move ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight
End Sub
</code>Sv: Visa ALLA Tabeller
[kod]
<%
Option Explicit
Dim objConn, objRS
Dim strConnString, strSQL
'## -- vilken provider och databas fil som ska användas --
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=X:\min_db_folder\min_db_fil.mdb"
'## -- skapa ett connection object mot databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnString
'## -- skapa ett recordset och hämta alla tabeller i databasen (Access) --
Set objRS = objConn.OpenSchema(20)
Do While Not objRS.EOF
strTableName = objRS.Fields("TABLE_NAME")
'## -- printa ut tabellnamnen på de tabeller som finns
'## i databasen , inkl alla systemtabeller --
Response.Write strTableName & "<BR>"
objRS.MoveNext
Loop
'## -- rensa upp --
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
[/kod]
cya,
PatrikB