Hej! Har gjort ett litet exempel:Utskrift i Access formulär
Är det någon som vet hur man skriver ut data från en Access databas till ett access fromulär, med "," tecken emellan? Alltså typ hästar, idrott, målning. Jag vill alltså inte använda mej av listboxar, utan få all data utskrivet på samma rad lixom.....
//MonicaSv: Utskrift i Access formulär
Tabell: Personer
PersonID Autonumber
FörNamn Long
EfterNamn Text
Tabell: Intressen
IntresseID Autonumber
PersonID Long
Intresse Text
Fråga: qryIntressen
PARAMETERS [PersonID] Long;
SELECT Intressen.*
FROM Intressen
WHERE (Intressen.PersonID=[PersonID]);
Har en funktion som konkratinerar ihop posterna till en sträng. Du kan klistra in den i formlärmodulen eller i en allmän modul.
'Modulnivå variabler
Private mdb As DAO.Database
Private mQDef As DAO.QueryDef
Private mLookUp As DAO.Recordset
'Funktion
Public Function Intressen(PersonID As Variant) As String
Dim fldIntresse As DAO.Field
On Error GoTo Intressen_Err
If mLookUp Is Nothing Then
Set mdb = CurrentDb
Set mQDef = mdb.QueryDefs("qryIntressen")
mQDef.Parameters("PersonID") = PersonID
Set mLookUp = mQDef.OpenRecordset(dbOpenForwardOnly)
Else
mQDef.Parameters("PersonID") = PersonID
mLookUp.Requery mQDef
End If
Set fldIntresse = mLookUp("Intresse")
Do Until mLookUp.EOF
Intressen = Intressen & fldIntresse.Value & ", "
mLookUp.MoveNext
Loop
If Len(Intressen) Then
Intressen = Left(Intressen, Len(Intressen) - 2)
End If
Intressen_Exit:
Exit Function
Intressen_Err:
MsgBox Err.Description, vbCritical
Resume Intressen_Exit
End Function
Efter som vi lagrar varibler på modulnivå bör vi tömma dessa när vi stänger formuläret.
Private Sub Form_Unload(Cancel As Integer)
Set mQDef = Nothing
Set mLookUp = Nothing
Set mdb = Nothing
End Sub
Skapa ett formulär som är bundet till Personer. Lägg till en textruta med följande ControlSource egenskap: =Intressen([PersonID])
Om du lagt funktionen i en modul. Kan du istället klistra in funktionen i frågan för formuläret. Test om du själv kan upptäcka skillnaden.