Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I am importing data from access (via ADO) into Excel. However I find that all my numerical fields are converted to text fields and I can not do any calculations on them. Is there any way that I can convert them back to numbers. I list my code below. Thanks in advance for your help Jeremy. Sub Outpatients(PName As String) Dim col As Integer 'Create RecordSet Set Recordset = New adodb.Recordset With Recordset ' Filter Src = "SELECT * FROM GPs_PatientRecords_OP WHERE GPs_PatientRecords_OP.PRACTICE= '" & PName & " '" 'Src = "Select * From QryChapterbyHRG where Chapter = '" & HRGCode & " '" Open Src, Connection ' Write the field Names For col = 0 To Recordset.Fields.Count - 1 Worksheets("Outpatient").Range("A1").Offset(0, col).Value = Recordset.Fields(col).Name Next ' copy rows Worksheets("Outpatient").Range("A1").Offset(1, 0).CopyFromRecordset Recordset End With 'Close the recordset Set Recordset = Nothing -- lowestbass ------------------------------------------------------------------------ lowestbass's Profile: http://www.excelforum.com/member.php...o&userid=29255 View this thread: http://www.excelforum.com/showthread...hreadid=489749 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One suggestion to start: use a variable name other than Recordset. It is
never good to use a word used by the object model as a variable name in your code. Although tedious, you can iterate through the recordset and put the results in your result range, converting any values as you go; to do so replace your ..CopyFromRecordset with code like this: Dim Anchor as Range, RSField as ADODB.Field Set Anchor = Worksheets("Outpatient").Range("A2") With Recordset While Not .EOF For Each RSField in Recordset Select Case RSField.Name Case "ProblemField" ' you get the idea, I hope! Anchor.Value = CInt(RSField.Value) Case Else Anchor.Value = RSField.Value End Select Set Anchor = Anchor.Cells(1,2) Next RSField Set Anchor = Anchor.Offset(1,0).EntireRow.Cells(1,1) WEnd End With -- - K Dales "lowestbass" wrote: I am importing data from access (via ADO) into Excel. However I find that all my numerical fields are converted to text fields and I can not do any calculations on them. Is there any way that I can convert them back to numbers. I list my code below. Thanks in advance for your help Jeremy. Sub Outpatients(PName As String) Dim col As Integer 'Create RecordSet Set Recordset = New adodb.Recordset With Recordset ' Filter Src = "SELECT * FROM GPs_PatientRecords_OP WHERE GPs_PatientRecords_OP.PRACTICE= '" & PName & " '" 'Src = "Select * From QryChapterbyHRG where Chapter = '" & HRGCode & " '" .Open Src, Connection ' Write the field Names For col = 0 To Recordset.Fields.Count - 1 Worksheets("Outpatient").Range("A1").Offset(0, col).Value = Recordset.Fields(col).Name Next ' copy rows Worksheets("Outpatient").Range("A1").Offset(1, 0).CopyFromRecordset Recordset End With 'Close the recordset Set Recordset = Nothing -- lowestbass ------------------------------------------------------------------------ lowestbass's Profile: http://www.excelforum.com/member.php...o&userid=29255 View this thread: http://www.excelforum.com/showthread...hreadid=489749 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Is it possible to use Access data w/o importing it? | Links and Linking in Excel | |||
Importing Data from Access | Excel Discussion (Misc queries) | |||
importing data from access | Excel Discussion (Misc queries) | |||
Importing Access data | Excel Programming | |||
importing data from Access... | Excel Programming |