Denormaliseren

Status
Niet open voor verdere reacties.
Hallo Octafish,
Heb je nog een beetje tijd voor mijn uitdaging? Ik zou het zeer op prijs stellen als er een oplossing voorhanden is.

Ron
 
Het is een sluimerend project op dit moment.... maar ik ben er nog wel mee aan het stoeien.
 
Octafish,
Bedankt voor je terugkoppeling. Enig idee wanneer er een resultaat te verwachten is?

Ron
 
Geen idee; de laatste versie die ik net weer even heb uitgeprobeerd crasht op het formulier frmTest. Dus die heb ik opnieuw moeten maken... Je hebt in je queries een aantal fouten (eigenlijks is het één fout die vaker terugkomt) gemaakt: je filtert op een Tekstwaarde, maar het veld [SchepenId] is Numeriek. Maar dat is niet het hoofdprobleem...
 
Nieuw formulier gemaakt, en de code verbeterd. Je moet twee dingen doen, behalve dus de aanpassing in de SQL i.v.m. het numerieke ScheepsID:

In je tabel moet de veldlengte van de velden Foto# worden aangepast; die staat nu op 50, terwijl de meeste strings zo'n 100 tekens bevatten. En dat past uiteraard dan niet.
Verder moet je de loop om ze te vullen vervangen door deze:

Code:
                    Do While Not .EOF
                        ' Alle foto's inlezen in een matrix...
                        sFoto(iRec, 0) = Nz(.Fields(0), "")
                        sFoto(iRec, 1) = Nz(.Fields(1), "")
                        sFoto(iRec, 2) = Nz(.Fields(2), "")
                        sFoto(iRec, 3) = Nz(.Fields(3), "")
                        iRec = iRec + 1
                        .MoveNext
                    Loop
 
Octafish,
Zeer bedankt!.
Ik heb de lengte voor de tekstvelden aangepast in de "resultaat tabel" en bovenstaande code ingeplakt.
Ik krijg daarna echter de foutmelding:

Fout 9 tijdens uitvoering
Het subscript valt buiten het bereik.


Bestaande code:
Code:
'De tabel Webtest openen, en alle SchepenId apart inlezen in een matrix variabele.
strSQL = "SELECT DISTINCT SchepenId FROM webtest"
    With CurrentDb.OpenRecordset(strSQL)
        .MoveLast
        .MoveFirst
        If .RecordCount > 0 Then
Onderstaande code op commentaar gezet:
Code:
            'Do While Not .EOF
            '    ReDim Preserve sPersoon(.RecordCount - 1)
            '    sPersoon(iRec) = .Fields(0).Value
            '    iRec = iRec + 1
            '    .MoveNext
            'Loop
Hieronder de gewijzigde code:
Code:
            Do While Not .EOF
                        ' Alle foto's inlezen in een matrix...
                       [COLOR="yellow"] [B]sFoto(iRec, 0) = Nz(.Fields(0), "")[/B][/COLOR]
                        sFoto(iRec, 1) = Nz(.Fields(1), "")
                        sFoto(iRec, 2) = Nz(.Fields(2), "")
                        sFoto(iRec, 3) = Nz(.Fields(3), "")
                        iRec = iRec + 1
                        .MoveNext
                    Loop
        End If
    End With
 
Ik heb mijn versie er maar even bijgedaan; op basis van jouw foutmelding kan ik niet zoveel.
 

Bijlagen

Octafish,
Ik ben er achter waarom het bij mij misging, op de verkeerde plek geplakt.
Bedankt voor het meesturen van jouw oplossing.
Echter.... (je voelt het natuurlijk al aankomen http://www.helpmij.nl/forum/images/smilies/redface.gif

De resultaattabel heeft NIET alle aangeleverde records in de juiste kolommen geplaatst.
wellicht dat dat iets te maken kan hebben met het feit dat de Foto-velden hyperlinkvelden zijn, in de resultaattabel zie ik deze terug als Tekstveld EN 2 foto's in 1 veld.

Ik heb, in bijlage file, een tabel meegeleverd, Verwacht resultaat, met daarin de records zoals ik ze eigenlijk zou willen hebben.

Is dat te doen?

Ron
Bekijk bijlage SamenvoegenRon.rar
 
Ik kan er op dit moment nog weinig van zeggen, omdat je resultaattabel andere gegevens bevat dan de tabel met de fotogegevens. Dus ik zie eigenlijk de verschillen niet zo; het lijkt mij dat de procedure doet wat-ie moet doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan