svamp Skrevet 24. april 2004 Del Skrevet 24. april 2004 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
offko Skrevet 25. april 2004 Del Skrevet 25. april 2004 (endret) 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 25. april 2004 av offko Lenke til kommentar
svamp Skrevet 25. april 2004 Forfatter Del Skrevet 25. april 2004 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 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
aadnk Skrevet 25. april 2004 Del Skrevet 25. april 2004 (endret) 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 25. april 2004 av aadnk Lenke til kommentar
svamp Skrevet 25. april 2004 Forfatter Del Skrevet 25. april 2004 Det fungerte strålende, takk skal du ha Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå