Private Sub cmdSplitTable_Click()
Dim conn As ADODB.Connection
' Open a connection.
Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & m_DbName & ";" & _
"Persist Security Info=False"
conn.Open
' Copy the data from the combined table into the new
' tables.
conn.Execute _
"INSERT INTO People " & _
"SELECT DISTINCT ID, FirstName, LastName, Rate " & _
"FROM Combined"
conn.Execute _
"INSERT INTO Invoices " & _
"SELECT ID, StartTime, StopTime " & _
"FROM Combined"
' Display the new data.
txtData.Text = DBContents(conn)
conn.Close
End Sub
' Return a string containing the database's contents.
Private Function DBContents(ByVal conn As ADODB.Connection) _
As String
Dim rs As ADODB.Recordset
Dim txt As String
' Get table information.
Set rs = conn.OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "Table"))
txt = ""
Do While Not rs.EOF
' Get this table's contents.
txt = txt & TableContents(conn, rs!table_name)
rs.MoveNext
Loop
rs.Close
DBContents = txt
End Function
' Return a string containing this table's contents.
Private Function TableContents(ByVal conn As _
ADODB.Connection, ByVal table_name As String) As String
Dim rs As ADODB.Recordset
Dim txt As String
Dim record_txt As String
Dim i As Integer
Set rs = conn.Execute( _
"SELECT * FROM " & table_name, , adCmdText)
txt = "********************" & vbCrLf & table_name & _
vbCrLf
Do Until rs.EOF
record_txt = rs.Fields(0).Value
For i = 1 To rs.Fields.Count - 1
record_txt = record_txt & ", " & _
rs.Fields(i).Value
Next i
txt = txt & record_txt & vbCrLf
rs.MoveNext
Loop
rs.Close
TableContents = txt
End Function