radioblaster
16.11.10,18:25
zdravim robim jednu databazu v accesse a potreboval by som poradit s denormalizaciou dat. v tabulke mam taketo udaje:

id.....zaner

1......akcny
2......thriler
3.....horor

a potreboval by som takyto vysledok:

zaner: akcny, thriler, horor

zrejme bude treba nejaky VBA kod, ktory ale neviem napisat...
PaloPa
17.11.10,09:37
Stačí použiť funkciu, akú máš v príklade a výsledný text môžeš použiť v reporte i vo formulári.



Option Compare Database

Sub test()
Dim x
x = "zaner: " & VratText("TableZanre", "id", "zaner")
Debug.Print x
End Sub

Public Function VratText(xTable As String, xOrd As String, xFieldName As String) As String
Dim MyDB As Database, MyTbl As Recordset, x_sql As String
Dim ix As Long
Dim x_BY, x_SDZ, xFul

On Error GoTo Err_VText

Set MyDB = CurrentDb 'DBEngine.Workspaces(0).Databases(0)
x_sql = " SELECT * FROM " & xTable 'WHERE ( x=y)
x_sql = x_sql & " ORDER BY " & xOrd

' *** Napln text texty
Set MyTbl = MyDB.OpenRecordset(x_sql)

MyTbl.MoveFirst ' Locate first record.
ix = MyTbl.RecordCount
Do Until MyTbl.EOF ' Begin loop.
xfulltext = xfulltext & IIf(xfulltext <> "", ",", "") & CStr(MyTbl.Fields(xFieldName).Value)
MyTbl.MoveNext ' Locate next record.
ix = ix - 1 ' Increase index
Loop ' End of loop.

Exit_VText:
MyTbl.Close ' Close table.
MyDB.Close
VratText = xfulltext
Exit Function

Err_VText:
MsgBox Error$
VratText = ""
Resume Exit_VText

End Function



Môžeš vyskúšať pre formulár Form1


Palo
radioblaster
18.11.10,09:22
no zda sa ze je to presne to co potrebujem, skusim to upravit pre svoje potreby a popripade napisem...

Dakujem