Avatar billede hnteknik Novice
22. februar 2000 - 17:04 Der er 5 kommentarer og
1 løsning

Der kan ikke åbnes flere databaser - error no 3048 i Access97

Hjælp en gammel Access freak, der er kommet til kors:

Når kommandoen : Me.minSubform.Form.RecordSource = MySQL
er eksekveret præcis 19 gange indenfor samme form kommer
fejlkode 3048

'Der kan ikke åbnes flere databaser '

genåbnes formen har jeg 19 gange igen.

CurrentDB() peger på den åbne database . Hvad fanden laver recordsource,
siden den kan æde alle de DB  handles ? Er det en bug og/eller er der en workaround ??? (Access97)

Jeg er i hårdt brug for en varig løsning !

Henrik
Avatar billede sjensen Nybegynder
22. februar 2000 - 17:09 #1
kan du ikke bare lukke recordset efter dig for hver gang ?

Me.minSubform.Form.RecordSource = nil

sjensen

Avatar billede hnteknik Novice
22. februar 2000 - 17:28 #2
Hele ideen er, at søgestrengen MySQL som er en tekststreng gives
som recordsource efter hver søgning ( for at vise resultatet af søgningen i
en grid.). Det er ikke smart, at lortet stopper efter 19 søgninger !

Sourcen skal være en gyldig sqlsætning, som eksekveres med det samme.

Det virker ikke sjensen. Andre forslag ?
Henrik
Avatar billede privaten Nybegynder
23. februar 2000 - 08:53 #3
Kan man få din db at se?
Avatar billede sjensen Nybegynder
23. februar 2000 - 09:21 #4
Ja, ret navnet MySql til MinSql. MySql er navnet på en databasetype og jeg gætter på at systemet tror du åbner en ny db hver gang.

Det var det der lå bag mit første forslag.
Avatar billede hnteknik Novice
23. februar 2000 - 10:34 #5
Det holder ikke sjensen. Mysql er deffet som string. Men jeg har selvfølgelig testet - man æder gerne al slags medicin for at blive rask.

Jeg tror nu det ligger i størrelsen af min SQL som senere sættes sammen med en variabel men ofte kopliceret tekststreng. MySQL er en fast tekststreng, som hentes fra systemet med en fiffig rutine:

Function HentQryValues(strTable As String, Item As Integer)
' Henriks special - der henter en str med Qrys navn
Static QryTxt As String
If QryTxt > "" Then ' test test test
    ListQryValues = QryTxt
Else
    Dim db As Database
    Dim Qry As QueryDef
       
    Set db = CurrentDb()
    Set Qry = db.QueryDefs(strTable)
    ListQryValues = Qry.Properties(Item).Value
    QryTxt = ListQryValues
    db.Close
End If
End Function

Først troede jeg, at det var denne der åd mine handles, men det er nu nok tekststrengens længde, der - via en bug - kvæler systemet:

Den er på +1100 karakterer og sættes senere sammen men en variabel filterstreng også ofte på op til 1000 karakterer.  Privaten - grundSQL er som følger - delt op for at notepad oiverhoved kan læse den:

txt1="SELECT DISTINCTROW [tbl-skade-hoved].*"
txt2="FROM ((((((((((([tbl-skade-hoved] LEFT JOIN [tbl-auto] ON "
txt3="[tbl-skade-hoved].skadenr = [tbl-auto].skadenr) LEFT JOIN [tbl-modparter] ON "
txt4="[tbl-skade-hoved].skadenr = [tbl-modparter].skadenr) INNER JOIN "
txt5="[tbl-omkostningsfordeling] ON [tbl-skade-hoved].skadenr = "
txt6="[tbl-omkostningsfordeling].skadenr) LEFT JOIN [tbl-skadebeskriv] ON "
txt7="[tbl-skade-hoved].skadenr = [tbl-skadebeskriv].skadenr) LEFT JOIN "
txt8="[tbl-skadelidte] ON [tbl-skade-hoved].skadenr = [tbl-skadelidte].skadenr) LEFT JOIN "
txt9="[tbl-skaden omfatter] ON [tbl-skade-hoved].skadenr = [tbl-skaden omfatter].skadenr) LEFT JOIN "
txt10="[tbl-skaden sket hvor] ON [tbl-skade-hoved].skadenr = [tbl-skaden sket hvor].skadenr) LEFT JOIN "
txt11="[tbl-skaden sket paa] ON [tbl-skade-hoved].skadenr = [tbl-skaden sket paa].skadenr) LEFT JOIN "
txt12="[tbl-skadens aarsag] ON [tbl-skade-hoved].skadenr = [tbl-skadens aarsag].skadenr) LEFT JOIN "
txt13="[tbl-skadeopgørelse] ON [tbl-skade-hoved].skadenr = [tbl-skadeopgørelse].[Skade-nr]) LEFT JOIN "
txt14="[tbl-skadesteder] ON [tbl-skade-hoved].skadenr = [tbl-skadesteder].skadenr) LEFT JOIN "
txt15="[tbl-Vidner] ON [tbl-skade-hoved].skadenr = [tbl-Vidner].skadenr Where "

Det virker - men vi kører lige på klippekanten. Rutinen foroven henter tekststrengen ind med tvungen linieskift - men det generer tilsyneladende ikke systemet.

Henrik
Avatar billede hnteknik Novice
06. maj 2000 - 15:56 #6
Jeg lukker sagen, da jeg ikke er kommet  nærmere svaret. Det har tilsyneladende noget at køre med antallet af linkede tabeller i forespørgelsen.

henrik
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