Gå til innhold

Anbefalte innlegg

Jeg har problem med å kjøre denne koden.

Det er en form med en ADO-kontroll som jeg har laga med kode, men den virker ikke. Det virker å bruke den vanlige ado-kontrollen, men jeg skal bruke den jeg har laga.

 

Feilmeldingen som kommer: Run time error '91': Object variable or with block variable not set

 

Meldingen kommer på koden i form_load.

 

Koden til formen:

 

Option Explicit
Private datUtvalgsDb As Adodc
Dim strSql As String

Private Sub cmdVisUtvalg_Click()
 If optLoper Then
   strSql = "SELECT * FROM Person WHERE (((Person.Status) Like 'Løper')) ORDER BY id ASC"
 ElseIf optNyLoper Then
   strSql = "SELECT * FROM Person WHERE (((Person.Status) Like 'Ny løper')) ORDER BY id ASC"
 ElseIf optStyremedlem Then
   strSql = "SELECT * FROM Person WHERE (((Person.Status) Like 'Styremedlem')) ORDER BY id ASC"
 ElseIf optAlle Then
   strSql = "SELECT * FROM Person ORDER BY id ASC"
 Else
   MsgBox ("Du må velge et utvalg."), , "Utval: Feil"
   Exit Sub
 End If
 
 datUtvalgsDb.RecordSource = strSql
 Set grdUtvalg.DataSource = datUtvalgsDb
 datUtvalgsDb.Refresh
 
 With grdUtvalg
   .Columns(0).Width = "500"
   .Columns(1).Width = "1500"
   .Columns(2).Width = "1500"
   .Columns(3).Width = "1000"
   .Columns(4).Width = "1000"
   .Columns(5).Width = "3000"
   .Columns(6).Width = "2500"
   .Columns(7).Width = "2000"
   .Columns(8).Width = "700"
   .Columns(9).Width = "800"
   .Columns(10).Width = "2500"
   .Columns(11).Width = "1200"
   .Columns(12).Width = "1000"
 End With
End Sub

Private Sub Form_Load()
 datUtvalgsDb.ConnectionString = "FILE NAME=" & App.Path & "\filo.dsn"
End Sub

 

Noen som kan hjelpe?

Lenke til kommentar
Videoannonse
Annonse

Er egentlig ikke noen VB programmerer, men denne dukker opp i VBA også.

 

Betyr som regel at objektvariabelen ikke er instansiert før den tas i bruk.

 

Ser du deklarerer den på toppen, men kanskje også:

 

set datUtvalgsDb = new Adodc

 

- i form load også? Hvis ikke dette er løsningen, får vi håpe det kommer noen VB tungvektere inn :)

 

Edit: hmpf - liten syntaxleif:)

Endret av offko
Lenke til kommentar

Prøvde å skrive

Set datutvalgsdb = New Adodc

i form_load, men Adodc er ikke et valg på lista som kommer opp etter jeg har skrevet "New". Fikk bare "variable not defined". Derimot er Adodb et valg, så derfor prøvde jeg

Set datutvalgsdb = New Adodb

men det gikk heller ikke, feilmelding: "Compile error: Expected user-defined type, not project"

 

Hjelp, Aadnk :D

 

Kunne det gått å lage en klassemodul og bruke den som adodc? Har brukt klassemodul som en annen, vanlig datakontroll (eller database og recordset da). Det burde vel gå med ado også?

Lenke til kommentar

Jeg skal ikke si at data base programmering er mitt sterkeste felt, men jeg tror kanskje du blir nødt til å bruke Late-binding, dvs. å hente kontrollen med CreateObject.

 

Prøv derfor å sette variabelen til Object:

 

Private datUtvalgsDb As Object

 

Så bruker du denne koden i oppstarten (antar det blir i Form_Load) for å skape objektet:

 

Set datUtvalgsDb = CreateObject("MSAdodcLib.Adodc")

 

Etter dette må du sette inn ConnectionString og alt det der.

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...