habs schon gesehen konnte aber nichts mit anfangen
da ich die daten ja nicht filtern will das kann ich ja per sql machen
hab mal versucht das änlich zu machen
ein vorwort zur funktion die soll daten was mehrern datensätzen in einmn zusammen fügen
in etwa so:
Klasse Gesteine
Magmatite Granit, Basalt, Bimsstein, Pechstein, Kimberlit, Tonalit
Metamorphite Granitgneis, Hornfels, Schiefer, Marmor
Sedimente Kies, Kalkstein, Kieselgur, Bauxit und das ist die ausgangs tabbele
Klasse Gestein
Magmatite Granit
Magmatite Basalt
Magmatite Bimsstein
Magmatite Pechstein
Magmatite Kimberlit
Magmatite Tonalit
Metamorphite Granitgneis
Metamorphite Hornfels
Metamorphite Schiefer
Metamorphite Marmor
Sedimente Kies
Sedimente Kalkstein
Sedimente Kieselgur
Sedimente Bauxit die funktion hab ich von vba in vb.net umgeschrieben und in die klasse der form gepackt:
Function MergeField(ByVal Tabel As String, _
ByVal Fieldname As String, _
ByVal connection As DataSet, _
Optional ByVal Condition As String = Nothing, _
Optional ByVal Value As Long = Nothing, _
Optional ByVal Ordered As Boolean = False, _
Optional ByVal OrderDirection As Long = 0)
Dim rs As New ADODB.Recordset
Dim strSql As String
Dim strTmp As String
strSql = "SELECT [" & Fieldname & "] FROM [" & Tabel & "]"
If Len(Condition) Then strSql = strSql & " WHERE " & Condition & Value
If Ordered Then
strSql = strSql & " ORDER BY [" & Fieldname & "]"
If OrderDirection <> 0 Then strSql = strSql & "DESC"
End If
With rs
.Open(strSql, connection.Tables, _
CursorTypeEnum.adOpenStatic, LockTypeEnum.adLockReadOnly, _
CommandTypeEnum.adCmdText)
If Not .EOF Then
strTmp = .GetString(, , , ", ")
Do While strTmp.StartsWith(",") Or strTmp.StartsWith(" ")
strTmp = strTmp.Substring(1, Len(strTmp) - 1)
Loop
If Len(strTmp) <> 0 Then
MergeField = strTmp.Substring(0, Len(strTmp) - 2)
Else
MergeField = ""
End If
End If
.Close()
End With
End Functionich hab versucht die genauso aufzurufen wie die select funkton hat aber nicht funktioniert
hoffe ihr versteht was ich meine
grüße papst |