如何在Microsoft Access中合并以斜杠分隔的许多行

时间:2019-04-17 12:55:07

标签: sql access-vba

我在Microsoft Access中有一个带有两列的表。我希望将列表按其中一个分组,而另一列的信息应以斜杠分隔。我的代码可以运行,但是需要很长时间(超过两个小时)。是否有人有想法,如何以其他方式处理此问题?

我声明了一个函数(请参见下面的大代码)。在查询中,我使用SQL打开此函数

选择SQLListe(“从[表名]中选择[列2]从[列1] ='”&[column1]&“'”;“ /”;“ /”)作为结果 从[table_name]

正如我所说,这确实需要很长时间,其中包括表中的很多行。但是也许有人有主意。

谢谢!

Option Compare Database
Public Function SQLListe(ByVal SQL As String, _
                         Optional ByVal SepR As String = ";", _
                         Optional ByVal SepF As String = ";", _
                         Optional ByVal NoNullFields As Boolean = True) _
                         As String


 Dim rs As DAO.Recordset
 Dim i As Long
 Dim Res As String
 Dim Tmp As String

 Set rs = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)

 On Error Resume Next

 If Err.Number <> 0 Then
   Res = "#Fehler"
   Err.Clear
 Else
   On Error GoTo 0
   Res = ""

   Do While Not rs.EOF
     Tmp = ""

     For i = 0 To rs.Fields.Count - 1
       If Not (NoNullFields And IsNull(rs(i))) Then
         Tmp = Tmp & SepF & rs(i)
       End If
     Next

     If Tmp <> "" Then
       Res = Res & SepR & Mid(Tmp, Len(SepF) + 1)
     End If
     rs.MoveNext
   Loop

   If Res <> "" Then
     Res = Mid(Res, Len(SepR) + 1)
   End If
 End If

 If Not rs Is Nothing Then rs.Close: Set rs = Nothing

 SQLListe = Res

End Function

0 个答案:

没有答案