Public flag(1 To 20, 1 To 2) As String
Public BufferRecv(1 To 20), UnRename(1 To 20), Private_History(0 To 20, 0 To 20), history As String
Public ListView_Change1, Listview_Change2 As Integer
Public File_Sum_Change1, File_Sum_Change2 As Integer
Public File_Count As Integer
Public FileInformation(1 To 100, 1 To 4), FileInf As String
Public db As Database
Public rd As RecordsetPublic Sub Data_Add(ByVal str1 As String, ByVal str2 As String)
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select * from 用户信息")
  rd.AddNew
  rd.Fields(0) = str1
  rd.Fields(1) = str2
  rd.Update
End SubPublic Sub Data_Mod(ByVal str1 As String, ByVal str2 As String)
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select * from 用户信息 where 账号='" & str1 & "'")
  rd.Edit
  rd.Fields(0) = str1
  rd.Fields(1) = str2
  rd.Update
End SubPublic Sub Data_Del(ByVal str As String)
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select * from 用户信息 where 账号='" & str & "'")
  rd.Delete
End SubPublic Sub Data_Load()
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select * from 用户信息")
  i = 1
  Do While rd.EOF = False
    Private_History(i, 0) = rd.Fields(0)
    Private_History(0, i) = rd.Fields(0)
    Set itmx = Form2.ListView1.ListItems.Add(1, , rd.Fields(0))
    itmx.SubItems(1) = rd.Fields(1)
    itmx.SubItems(2) = 0
    i = i + 1
    rd.MoveNext
  Loop
End SubPublic Sub Delete_History()
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select 已接收字数 from 用户信息")
  Do While rd.EOF = False
    rd.Edit
    rd.Fields(0) = "0"
    rd.Update
    rd.MoveNext
  Loop
  Call Con_Close
  Set db = OpenDatabase(App.Path & "\客户端数据信息库.mdb", False, False)
  Set rd = db.OpenRecordset("select * from 群聊天记录")
  Do While rd.EOF = False
    rd.Delete
    rd.MoveNext
  Loop
  Call Con_Close
  history = ""
End SubPublic Sub Con_Close()
  rd.Close
  Set rd = Nothing
  db.Close
  Set db = Nothing
End SubPublic Sub Write_Private_History(ByVal name1 As String, ByVal name2 As String, ByVal str As String)
  Dim a(1 To 2) As Integer
  For i = 1 To 20
    If Private_History(i, 0) = name1 Then
       a(1) = i
    End If
    If Private_History(i, 0) = name2 Then
       a(2) = i
    End If
  Next i
  Private_History(a(1), a(2)) = Private_History(a(1), a(2)) & str
End SubFunction Read_Private_History(ByVal name1 As String, ByVal name2 As String) As String
  Dim a(1 To 2) As Integer
  For i = 1 To 20
    If Private_History(i, 0) = name2 Then
       a(1) = i
    End If
    If Private_History(i, 0) = name1 Then
       a(2) = i
    End If
  Next i
  Read_Private_History = Private_History(a(1), a(2))
  Private_History(a(1), a(2)) = ""
End FunctionPublic Sub Updata_Private_History(ByVal name As String, ByVal fl As Integer)
  If fl = 1 Then '增加账号
    For i = 1 To 20
      If Private_History(i, 0) = "" Then
        Private_History(i, 0) = name
        Private_History(0, i) = name
        Exit For
      End If
    Next i
  End If
  If fl = 0 Then  '删除账号
    For i = 1 To 20
      If Private_History(i, 0) = name Then
        Exit For
      End If
    Next i
    For j = 0 To 20
      Private_History(i, j) = ""
      Private_History(j, i) = ""
    Next j
  End If
End SubPublic Sub Send_Private_History(ByVal name As String, ByVal ind As Integer)
    Dim sum As Integer
    For i = 1 To 20
      If Private_History(0, i) = name Then
        Exit For
      End If
    Next i
    For j = 0 To 20
      If Private_History(j, i) <> "" Then
        UnRename(i) = UnRename(i) & Private_History(j, 0) & "!"
        sum = sum + 1
      End If
    Next j
    UnRename(i) = "UnRe##" & sum & "%" & UnRename(i)
    If Form1.Server(ind).State = sckConnected Then
      Form1.Server(ind).SendData Encrypt(UnRename(i), 99)
      DoEvents
    End If
    UnRename(i) = ""
End SubPublic Sub Save_Private_History(ByVal str As String)
  Dim hist, name, str2 As String
  hist = Right(str, Len(str) - 15)
  t = InStr(1, hist, Chr(1))
  name = Left(hist, t - 1)
  If Len(hist) = t Then Exit Sub
  hist = Right(hist, Len(hist) - t)
  For j = 1 To 20
    If Private_History(0, j) = name Then Exit For
  Next j
  Do While Len(hist) > 0
    t = InStr(1, hist, Chr(1))
    name = Left(hist, t - 1)
    hist = Right(hist, Len(hist) - t)
    t = InStr(1, hist, Chr(2))
    str2 = Left(hist, t - 1)
    hist = Right(hist, Len(hist) - t)
    For i = 1 To 20
      If Private_History(i, 0) = name Then
        Private_History(i, j) = str2
      End If
    Next i
  Loop
End SubPublic Function Encrypt(ByVal text As String, ByVal key As Integer)
Dim intC As Integer
For i = 1 To Len(text)
  intC = AscW(Mid(text, i, 1))
  Mid(text, i, 1) = ChrW(intC Xor key)
Next i
Encrypt = text
End FunctionPublic Sub Get_File_Information()
  Dim fname As String
  Dim foldername As String
  Dim i As Integer
  Dim File_Time As Date
  FileInf = ""
  foldername = App.Path & "\群共享\"
  Set fs = CreateObject("Scripting.FileSystemObject")
  fname = Dir(foldername & "*.*", 7)
  i = 1
  Do
    If fname = "" Then Exit Do
    If FileLen(foldername & fname) / 1024 > 1000 Then
      FileInformation(i, 2) = Round(FileLen(foldername & fname) / 1024 / 1024, 2) & "MB"
    Else
      FileInformation(i, 2) = Round(FileLen(foldername & fname) / 1024, 2) & "KB"
    End If
    If InStr(1, fname, "(") <> 1 Or InStr(1, fname, ")") < 10 Or InStr(1, fname, ")") > 12 Then
      Name foldername & fname As foldername & "(" & Date & ")" & fname
      fname = "(" & Date & ")" & fname
    End If
    File_Time = Mid(fname, 2, InStr(1, fname, ")") - 2)
    FileInformation(i, 1) = Right(fname, Len(fname) - InStr(1, fname, ")"))
    FileInformation(i, 3) = File_Time
    FileInformation(i, 4) = (7 - DateDiff("d", File_Time, Now)) & "天"
    i = i + 1
    fname = Dir()
  Loop
  File_Count = i - 1
  For i = 1 To File_Count
    FileInf = FileInf & FileInformation(i, 1) & Chr(1) & FileInformation(i, 2) & Chr(2)
    FileInf = FileInf & FileInformation(i, 3) & Chr(3) & FileInformation(i, 4) & Chr(4)
  Next i
  FileInf = "FileInformation##" & File_Count & "@" & FileInf
End SubPublic Sub Write_ListView3()
  Call Get_File_Information
  Form3.ListView1.ListItems.Clear
  For i = 1 To File_Count
    Set itmx = Form3.ListView1.ListItems.Add(1, , File_Count - i + 1)
    itmx.SubItems(1) = FileInformation(i, 1)
    itmx.SubItems(2) = FileInformation(i, 2)
    itmx.SubItems(3) = FileInformation(i, 3)
    itmx.SubItems(4) = FileInformation(i, 4)
  Next i
End Sub
问题出现用户类型定义未定义??