22. februar 2000 - 17:04Der 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)
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
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 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.
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
Synes godt om
Ny brugerNybegynder
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.