Gustav Brock
gustav at cactus.dk
Sun Sep 5 06:22:50 CDT 2004
Hi Oleg
Assuming that your 12 fields are juxtaposed, why not just loop through
the records and the fields:
Public Function AppendRecords()
' First field of source table to pick data.
Const clngRst1Offset As Long = 4 ' Adjust!
' First field of target table to insert data.
Const clngRst2Offset As Long = 1 ' Adjust!
' Max count of fields to use in target table.
Const clngRst2Max As Long = 12
Dim cnn As ADODB.Connection
Dim rst1 As ADODB.Recordset
Dim rst2 As ADODB.Recordset
Dim strSQL1 As String
Dim strSQL2 As String
Dim lngField1 As Long
Dim lngField2 As Long
Dim lngField As Long
Set cnn = CurrentProject.Connection
Set rst1 = New ADODB.Recordset
Set rst2 = New ADODB.Recordset
strSQL1 = "Select * From Hrsqd"
strSQL2 = "Select Top 1 * From Hrsqd_Full"
rst1.Open strSQL1, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
rst2.Open strSQL2, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
' Number of fields to pick from source table.
lngField1 = rst1.Fields.Count - clngRst1Offset
' First field in target table to insert data.
lngField2 = clngRst2Offset + clngRst2Max - lngField1
Do While Not rst1.EOF
rst2.AddNew
For lngField = 0 To lngField1 - 1
rst2.Fields(lngField2 + lngField).Value = _
rst1.Fields(clngRst1Offset + lngField).Value
Next
rst2.Update
rst1.MoveNext
Loop
rst2.Close
rst1.Close
Set rst2 = Nothing
Set rst1 = Nothing
Set cnn = Nothing
End Function
/gustav
> Hey Group, happy holidays fro those of u in US. I am supposed to count the
> number of columns and based on the result import the data into a table
> with month names. The last column always contains December
> Am I on the right track ?
> This is what I've done so far ---
> Private Sub Command1_Click()
> Dim cnn As ADODB.Connection
> Dim rst1 As New ADODB.Recordset
> Dim SQL1 As String, SQL2 As String
> Dim a As Integer 'number of columns
> Dim b As Integer
> Dim Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
> Set cnn = CurrentProject.Connection
> SQL1 = "Select * From Hrsqd"
> rst1.Open SQL1, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
> a = rst1.Fields.Count 'number of fields
> b = a - 2 ' number of month fields
> If b = 6 Then 'Jul - Dec
> Do Until rst1.EOF
> Jul = rst1.Fields(3)
> Aug = rst1.Fields(4)
> Sep = rst1.Fields(5)
> Oct = rst1.Fields(6)
> Nov = rst1.Fields(7)
> Dec = rst1.Fields(8)
> Loop
> End If
> If b = 5 Then 'Aug - Dec
> Do Until rst1.EOF
> Aug = rst1.Fields(3)
> Sep = rst1.Fields(4)
> Oct = rst1.Fields(5)
> Nov = rst1.Fields(6)
> Dec = rst1.Fields(7)
> Loop
> End If
> If b = 4 Then 'Sep - Dec
> Do Until rst1.EOF
> Sep = rst1.Fields(3)
> Oct = rst1.Fields(4)
> Nov = rst1.Fields(5)
> Dec = rst1.Fields(6)
> Loop
> End If
> rst1.Close
> SQL2 = "INSERT Into HRSQD_Full (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug,
> Sep, Oct, Nov, Dec) Values (" & Jan & "," & Feb & "," & Mar & "," & Apr &
> "," & May & "," & Jun & "," & Jul & "," & Aug & "," & Sep & "," & Oct &
> "," & Nov & "," & Dec & ")"
> MsgBox a
> End Sub