Gå til innhold

Anbefalte innlegg

Ønsker følgende funksjonalitet i en form :

 

Brukeren skal velge "verdier" i to forskjellige listefelt (combobokser).

Utifra hva brukeren har valgt i disse to feltene skal det kjøres en spørring

i en access database for å finne alle postene som matcher dette utvalget.

 

Hvordan gjøres dette ?.

 

Ønsker gjerne at disse postene skal komme frem en og en, dvs. at brukeren

kan bla seg fra post til post og eventuelt redigere, slette osv.

Lenke til kommentar
Videoannonse
Annonse

Du kan bruke en vanlig sql-spørring. Du trenger en datagrid-kontroll og en ado-datakontroll.

Option Explicit
dim strSql as string
dim strUtvalg as string

'Brukeren har valgt i boksen, og klikker OK
Private Sub cmdUtvalg_Click()
 strUtvalg = combo1.text
 strSql = "SELECT * FROM Tabell WHERE (((Tabell.Felt) Like '" & strUtvalg & "')) ORDER BY EtFelt ASC"
 VelgPoster
End Sub

Private Sub VelgPoster()
 Adodc1.RecordSource = strSql
 Set DataGrid1.DataSource = Adodc1
 Adodc1.Refresh
End Sub

'Jeg måtte lage en DSN-fil for å få kontakt med databasen med Ado-datakontroll.
'Husker ikke hvor jeg lagde den, det var en mappe i windows som het my data 'sources eller noe sånt. Du finner det sikkert ut.

Private sub Form_Load()
 AdoDc1.ConnectionString = "FILE NAME=" & App.Path & "DinFil.dsn"
End sub

 

ConnectionString kan du sikkert også sette i properties for adodc'en, i steden for i form_load. Jeg brukte kontrollen med kode og hadde ikke noe egenskaper-vindu for den.

 

Dette var koden for å velge ut poster ut fra 1 verdi. Kanskje det går an å sette inn litt ekstra i strSql for å bruke 2 verdier, slik kanskje:

strSql = "SELECT * FROM Tabell WHERE (((Tabell.Felt) Like '" & strUtvalg & "')) AND (((Tabell.Felt2) Like '" & strUtvalg & "')) ORDER BY EtFelt ASC"

 

Håper dette kanskje hjalp litt?

Lenke til kommentar

Det er også mulig å bruke en connection-less metode å koble seg til databasen på. Denne koden her vil f.eks markere raden skrevet i Combo1 fra tabellnavnet i Combo2:

 

Dim conn As Object, rs As Object, strSQL

Set conn = CreateObject("ADODB.Connection")

conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "C:/webdata/northwind.mdb"

Set rs = CreateObject("ADODB.Recordset")

strSQL = "SELECT " & Combo1.Text & " FROM " & Combo2.Text
rs.Open strSQL, conn

 

ADO er ikke særlig vanskelig å bruke, og jeg tror ikke det skulle by til særlig mangen problemer å implimere muligheten å bla seg fra post til post, og så redigere, legge til eller slette.

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...