Avatar billede mortenf Nybegynder
16. januar 2002 - 13:23 Der er 9 kommentarer og
1 løsning

Anvendelse af sort i datasheet view giver recordset fejl

Hej,

Fejl:
Jeg får en fejl \"Run-time error \'429\': ActiveX component can\'t create object\", hvis jeg forsøger at referere til min recordset.source efter jeg har anvendt Access\' Sort eller Filter funktioner.

Setup:
Tabel: t_test
id:  str_name:  str_type:
1      Peter        M
2      Søren        M
3      Bente        K
4      Hans        M

Jeg har en datasheet from (frmTest), der i Form_Load sætter formens recordset source (se nedenfor).
Yderligere har jeg en event (dobbeltklik), der skriver formens recordset source til skærmen (se nedenfor).

Fejlsituation:
Hvis jeg dobbeltklikker på str_name field i datasheet, så får jeg skrevet formens recordset source til skærmen.... som ønsket.
Hvis jeg herefter klikker på f.eks \'Sort Ascending\' toolbar knappen og derefter dobbeltklikker på str_name, så får jeg run-time fejlen.

Hvem har en løsning på problemet?


                - o -

Private Sub Form_Load()
    Dim rstobj As New ADODB.Recordset
    Dim RstSource   
   
    RstSource = \"Select * from t_test where str_type = \'M\'\"
   
    \'Open recordset
    With rstobj
        .ActiveConnection = CurrentProject.Connection
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        .Source = RstSource
        .Open
    End With

    \'Assign to Form recordset
    Set Forms(\"frmTest\").Recordset = rstobj

End Sub




Private Sub str_name_DblClick(Cancel As Integer)
    MsgBox Forms(\"frmTest\").Recordset.Source
End Sub

Avatar billede terry Ekspert
16. januar 2002 - 13:46 #1
hi mortenf> I have tested your example here Access XP and it works just fine :o)

The ActiveX error does seem a bit out of place though!
Try compiling the program and see if you get any errors. If you do then take a look at your references in the Tools+References menu while in code view. Make sure there are none MISSING. If there are then you can try removing them and recompiling. If they are needed then you will get an error and you will have to resolve this.
Avatar billede terry Ekspert
16. januar 2002 - 13:49 #2
Oh! now I get an error when I use filter (NOT SORT). Now I have something to look at!
16. januar 2002 - 14:04 #3
Hvad er årsagen til at du sætter formens Recordset.Source i stedet for formens Recordsource?
F.eks. sådan her:

Private Sub Form_Load()
    Dim RstSource as String 
   
    RstSource = \"Select * from t_test where str_type = \'M\'\"
    Me.Recordsource = rstSource
End Sub

/Thomas
Avatar billede terry Ekspert
16. januar 2002 - 14:05 #4
Hi mortenf>I dont have problems SORTING but I do when I filter. But what is it your after?

Use the in the form load
Me.RecordSource = \"Select * from t_test where str_type = \'M\'\"

And this in str_name_DblClick

MsgBox Me.RecordSource & \" \" & Me.OrderBy


Avatar billede terry Ekspert
17. januar 2002 - 08:34 #5
?
Avatar billede mortenf Nybegynder
17. januar 2002 - 08:36 #6
Tak - det virker....

Thomas - du fik pointene, da du var hurtigst på tasterne.

Ved I hvorfor, den metode jeg prøvede først, ikke virker?
17. januar 2002 - 12:17 #7
Hej Morten,

Tak for pointene :o)

Metoden du benyttede er mere en VB-måde at gøre det på. I Access har man altid knyttet datakilden direkte til formen vha Recordsource.
I Access er der først for nylig (i Access 2000) blevet tilknyttet et Recordset til formularen. I Dit tilfælde tror jeg at recordsettet desværre ikke spiller lige så godt sammen med filter/sortering, som det burde. Anden forklaring kan jeg ikke lige give.

/Thomas
Avatar billede mortenf Nybegynder
17. januar 2002 - 12:22 #8
Hej Thomas

Det lyder jo som en fornuftig forklaring.....

Hvad med lige at tage et kig på: http://www.eksperten.dk/spm/159818

Der er hurtige points ;-)
17. januar 2002 - 12:31 #9
hmm, den kan jeg ikke lige klare....jeg er ikke så sikker på at jeg ville lave en generel fejlhåndtering, da det som regel er helt individuelt hvordan man skal håndtere fejlen hver gang.
Avatar billede mortenf Nybegynder
17. januar 2002 - 12:34 #10
Fejlhåndteringen bliver ikke generel. Jeg har bare brug for funktionens navn, så jeg kan angive hvor fejlen er opstået
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester