[AccessD] Phun with Excel / automation

MartyConnelly martyconnelly at shaw.ca
Thu Jun 12 21:39:08 CDT 2003


You can get at it this way using ADO 2.7 with something like this

Dim oConn As New ADODB.Connection
Dim Ors As ADODB.Recordset
Dim c as long
Set Ors = New ADODB.Recordset

With oConn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .Properties("Extended Properties").Value = "Excel 8.0"
    .Open "C:\Excel\ExcelADO\results\Products.xls"
    .CursorLocation = adUseClient 'need otherwise recordcount=-1
    '....
Ors.Open "Select * from [Products]", oConn, adOpenStatic 'Sheet1$ or 
Products sheetname

 For c = 0 To Ors.RecordCount - 1
'the field order of columns does not always follow the sheet order
 Debug.Print Ors.Fields(0).Value; Ors.Fields(0).Name
 Debug.Print Ors.Fields(1).Value
  Ors.MoveNext
'just stuff these values in a table
 Next
 End With
  oConn.Close

------------------ or look at the schema of  the sheet for sheet names 
and field names and types

Dim oConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim intTblCnt As Integer, intTblFlds As Integer
Dim strTbl As String
Dim rstSch As ADODB.Recordset
Dim rsC As ADODB.Recordset
Dim Ors As ADODB.Recordset
Dim intColCnt As Integer, intColFlds As Integer
Dim strCol As String
Dim t As Integer, c As Integer, f As Integer

With oConn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .Properties("Extended Properties").Value = "Excel 8.0"
    .Open "C:\Excel\ExcelADO\results\Products.xls"
    .CursorLocation = adUseClient 'need otherwise recordcount=-1
    '....
    'Me.cmbSheetCombo.RowSource = rst
   
    Set rstSch = oConn.OpenSchema(adSchemaTables)
intTblCnt = rstSch.RecordCount
intTblFlds = rstSch.Fields.Count
MsgBox intTblCnt & "*?" & intTblFlds
'List1.AddItem "Tables:  " & intTblCnt
'List1.AddItem "--------------------"
Dim strList As String
strList = ""
For t = 1 To intTblCnt
    strTbl = rstSch.Fields("TABLE_NAME").Value
   Debug.Print vbTab & "Table #" & t & ":    " & strTbl
   Debug.Print vbTab & "--------------------"
   MsgBox strTbl
   strList = strList & strTbl & ";"
    For f = 0 To intTblFlds - 1
        Debug.Print vbTab & rstSch.Fields(f).Name & _
vbTab & rstSch.Fields(f).Value
    Next
   ' List1.AddItem "--------------------"
    Set rsC = oConn.OpenSchema(adSchemaColumns, Array(Empty, Empty, 
strTbl, Empty))
    intColCnt = rsC.RecordCount
    intColFlds = rsC.Fields.Count
    For c = 1 To intColCnt
        strCol = rsC.Fields("COLUMN_NAME").Value
     Debug.Print vbTab & vbTab & "Column #" & c & ": " & strCol
     Debug.Print vbTab & vbTab & "--------------------"
        For f = 0 To intColFlds - 1
 '         Debug.Print vbTab & vbTab & rsC.Fields(f).Name & _
 '                   vbTab & rsC.Fields(f).Value
        Next
        'List1.AddItem vbTab & vbTab & "--------------------"
        rsC.MoveNext
        Next
        rsC.Close
        'List1.AddItem "--------------------"
       
Next

End With
 oConn.Close


Don Elliker wrote:

> Then I am back to the "There is no object in this control" error 
> reported earlier. This comes up when attempting to import using the 
> wizard....I just AM screwed am I not? Well , I have the no-help desk 
> personnel coming for a visit later
> _D
>
>
>
>
> "Things are only free to the extent that you don't pay for them".-Don 
> Elliker
>  
> >Once the Import Spreadsheet Wizard starts you should see two radio 
> button
> >(Show Worksheets and Show Named Ranges). Make sure the Show 
> Worksheets >one is checked and then you should see a list of the 
> worksheets within >your file. Then just select the one you want to 
> import and keep answering >the wizard's questions. Repeat the process 
> for each worksheet to import. > > > > >"Don Elliker" >Sent by: 
> accessd-bounces at databaseadvisors.com >06/12/2003 10:46 AM >Please 
> respond to accessd > > > To: accessd at databaseadvisors.com > cc: > 
> Subject: [AccessD] Phun with Excel / automation > > >Folks, >I am 
> trying to import ,on a one time basis , the data from an excel 
> >workbook into Access XP. I can't use the 'import data' option, it 
> only >gets me the first worksheet (or am I doing it wrong?). I can get 
> to the >workbook in code easily enough but there seems no easy way to 
> get the >individual worksheets imported into separate tables. I tried 
> using the >'transferspreadsheet' docmd thingie, but it gets hung up on 
> the file name. >I cannot just reference the worksheet object- it 
> doesn't like that. I >thought it was working out too easily...#-( - 
> Sooo...does anyone have >this experience...this is a one-off I just 
> want the data in tables. >"Things are only free to the extent that you 
> don't pay for them".-Don >Elliker > >Add photos to your e-mail with 
> MSN 8. Get 2 months 
> FREE*._______________________________________________ >AccessD mailing 
> list >AccessD at databaseadvisors.com 
> >http://databaseadvisors.com/mailman/listinfo/accessd >Website: 
> http://www.databaseadvisors.com > > 
> >_______________________________________________ >AccessD mailing list 
> >AccessD at databaseadvisors.com 
> >http://databaseadvisors.com/mailman/listinfo/accessd >Website: 
> http://www.databaseadvisors.com
>
> ------------------------------------------------------------------------
> MSN 8 helps ELIMINATE E-MAIL VIRUSES. 
> <http://g.msn.com/8HMCENUS/2752??PS=> Get 2 months FREE*.
>
>------------------------------------------------------------------------
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>  
>




More information about the AccessD mailing list