vb + access = ?
6 svar · 309 visningar · startad av Kajsa
vad skall du göra? Det är lätt att skapa en koppling, men vad du ska göra sen är en annan fråga.
Här finns lite tips: http://www.able-consulting.com/MDAC/ADO/Connection/ODBC_DSNLess.htm#ODBCDriverForAccess
Dim adoConn As New ADODB.Connection
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[i]sökvägen + databasnamn[/i]"
adoConn.Open strConn [blue]'Så, nu har du en anslutning till en accessdatabas...[/blue]
Dim rsObj As New ADODB.RecordSet
Dim strSQL As String
strSQL = "SELECT * FROM [i]tabell[/i]"
rsObj.Open strSQL, adoConn [blue]'Ett recordset förhoppningsvis...
.
.
.[/blue]
Set rsObj = Nothing
Set adoConn = Nothing
Det finns givetvis massor att läsa om detta ämne. Förslagsvis på MSDN: ADO API Reference
Tack för hjälpen! Det funkade.
Nu kommer min nästa fråga :r
När jag hämtar saker och ting ur databasen vill jag presentera det i en listbox tex. Det funkar att visa info i en label, men inte i en listbox. Vad gör jag för fel?
Tack så mycket!
Jo, jag har gjort så som Engine^ skrev ovan och det gick bra.
Sen har jag försökt hämta en kolumn i en db med:
i = rsObj.GetString
Eller hur gör man när man vill hämta rad för rad i ur db:n Skall jag köra nån slags for-loop?
I java finns ju getNext (?) eller när man loopar i en array eller liknande... men jag är ju som sagt novis inom vb:n
Lite enklare om du hämtar med kolumnens namn
Set rsObj = adoConn.Execute("SELECT [i]kolumn1, kolumn2[/i] FROM [i]tabell[/i] WHERE [i]kolumn1[/i] = 'Hallon'", , 1)
[blue]Ovan är (i stort sett) samma som
rsObj.Open "SELECT [i]kolumn1, kolumn2[/i] FROM [i]tabell[/i] WHERE [i]kolumn1[/i] = 'Hallon'", adoConn[/blue]
Dim strValue As String [blue]'om [i]kolumn1[/i] innehåller strängar...
While Not rsObj.EOF
strValue = rsObj("[i]kolumn1[/i]")
rsObj.MoveNext
Wend
Skillnaden mellan att använda connection.Execute och recordset.open är att med connection så returneras endast ett recordset med read-only, forward-only. Behöver du göra förändringar i ditt recordset bör du använda recordset.open med de nödvändiga egenskaperna.
red. Lite mer att läsa om Execute, Requery and Clear Methods