Avatar billede ellebaek Nybegynder
17. april 2006 - 15:49 Der er 6 kommentarer og
2 løsninger

Recordset i VB

Hej.

Jeg har prøvet i flere omgange at få hevet et recordset ud af min database, og så få det løbet igennem, men bestemt uden held.

Jeg benytter en onClick som skal klare det for mig:
Dim strSQL As String
Dim DB As Database, Def As DAO.QueryDef, Rs As DAO.Recordset
Set DB = CurrentDb()

  strSQL = "SELECT [niveauer_vs_proevninger].[antal], [niveauer_vs_proevninger].[art], [niveauer_vs_proevninger].[proevning_type] FROM [niveauer_vs_proevninger] WHERE [niveauer_vs_proevninger].[niveau] = " & Me.List19.Value & " AND [niveauer_vs_proevninger].[SBC] IN (" & strSQL & ")"
  Set Def = DB.QueryDefs(strSQL)
  Set Rs = Def.openRecordset(dbOpenDynaset)

Men jeg får forskellige fejl når jeg prøver dette:
DB As Database giver den en fejl: User-Defined type not defined

Og det får jeg også på både QueryDefs og recordset.

Men jeg er temmelig grøn i access (har ellers kun brugt det til ASP, så håber på hjælp :-)

Mvh. Jens
Avatar billede mugs Novice
17. april 2006 - 16:12 #1
Prøv at lave en reference til DAO.
Avatar billede kjulius Novice
17. april 2006 - 17:32 #2
Jeg forstår ikke helt din kode.

Set Def = DB.QueryDefs(strSQL)

burde give fejl, da QueryDefs refererer til navnet på (eller indexet til) en foruddefineret forespørgsel. Du kan ikke angive en SQL streng på den måde.

Du kan derimod skrive:

Set Def = DB.CreateQueryDef("", strSQL)

At du angiver navnet til en blank streng betyder, at det bliver en midlertidig forespørgsel, hvilket vel også er formålet.

Selv om du kan gøre det på ovenstående måde, vil de fleste nok skyde over den del med at definere en midlertidig querydefinition. Du kan nemlig også skrive din SQL streng direkte i din OpenRecordset (når det er som metode på database objektet og ikke på querydefinitions objektet):

Set DB = CurrentDb()
Set rs = DB.OpenRecordset(strSQL, dbOpenDynaset)
Avatar billede ellebaek Nybegynder
17. april 2006 - 20:56 #3
mugs -> skal lige have lov at stille et dumt spørgsmål :-)

Men hvordan gør jeg det ?

Kjulius -> Jeg er slet ikke nået så langt i koden :-)
Den giver fejl længe inden, men får helt sikkert brug for dine kommentare også :-)
Avatar billede mugs Novice
17. april 2006 - 23:25 #4
Åbn din VBA-editor > Tools > References og browse ned igennem bibliotekerne til du møder DAO.
Hos mig hedder det "Microsoft DAO 3.6 Library". Dit kan hedde lidt andet afhængig af din version, men blot der står DAO skal du markere boksen i venstre side.
Avatar billede ellebaek Nybegynder
18. april 2006 - 13:54 #5
hey begge 2...

undskyld min længere response tid. er ret presset for tiden.
Men jeg har fået systemet til at fungere efterhånden.

Recordsettet kører -> Tusind tak mugs :-)
og også tak til dig kjulius..

du havde ret i at det andet ikke fungede, så har brugt dit sidste forslag.

Smider I et par svar...?
Avatar billede mugs Novice
18. april 2006 - 14:14 #6
:o)
Avatar billede kjulius Novice
18. april 2006 - 18:02 #7
S'gerne...
Avatar billede ellebaek Nybegynder
24. april 2006 - 13:52 #8
Simpelthen for pinligt at der skulle gå så lang tid...

Undskyld mange gange... Og tusind tak for hjælpen.

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

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