Hoe de inhoud subformulier in één tekstveld zetten?

Status
Niet open voor verdere reacties.

Stefan van Aals

Gebruiker
Lid geworden
11 aug 2010
Berichten
5
Ik heb een subformulier met hierin een aantal records. Ik wil de inhoud van deze records achterelkaar zetten, gescheiden met een komma, in een tekstveld.

Hoe kan ik dit het beste aanvliegen?

Met vriendelijke groet

Stefan
 
Een oplossing

Zelf een oplossing gevonden door het modificeren van wat code dat via Google te vinden was. Wellicht een startpunt voor iemand anders.

Code:
    Dim db As Database
    Dim tdf As TableDef
    Dim fld As Field
    Dim rst As Recordset
    Dim strSQL As String
    Dim strTableName As String

' 1: Create a new temporary table containing the required fields
    strSQL = "SELECT Patient_Beademingsmachine.PatientId, Patient_Beademingsmachine.BeademingsmachineId " & _
             "INTO tblTemp " & _
             "FROM Patient_Beademingsmachine " & _
             "WHERE Patient_Beademingsmachine.PatientId = " & backofficenummer & ";"
    DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True

'2: Selecteren van de tabel
    Set db = CurrentDb()
    Set tdf = db.TableDefs("tblTemp")

'3: Lezen van de inhoud
    On Error Resume Next
    Set rst = db.OpenRecordset("tblTemp", dbOpenTable)
    rst.MoveFirst
    Machines = ""
    Do
        ID = rst![BeademingsmachineId]
        machine = DLookup("Beademingsmachine", "Beademingsmachines", "ID = " & ID)
        If Machines = "" Then
            Machines = machine
        Else
            Machines = Machines & ", " & machine
        End If
        rst.MoveNext
    Loop Until rst.EOF
    
'4: Toekennen van de inhoud
        Machines.Value = Machines


' 5: Delete the temporary table
    db.TableDefs.Delete ("tblTemp")
 
Vliegen nog wel..... ;)

Je zult dat denk ik met VBA moeten oplossen, al kun je het ook met een query proberen.
In een query maak je dan een nieuw veld aan:
Code:
Alles: [Id] & ", " & [nr] & ", " & [Instelling] & ", " & [Toepassing] & ", " & [Bedrag]
Vervolgens moet je op je formulier een tekstveld maken die per hoofditem de recordset van het subformulier doorloopt, en alle records van het veld [Alles] weer combineert tot één string, door ze weer een eigen scheidingsteken te geven.

Een andere optie zou kunnen zijn om met VBA een tekst exportbestand te maken, en dat te koppelen aan het tekstveld op het hoofdformulier. Maar ik weet niet of dat erg vertragend wordt als je voor elk record in je hoofdformulier een nieuw (tijdelijk) tekstbestand laat exporteren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan