RobP
May 25th, 1999, 02:55 PM
I am opening an Excel spreadsheet as a database using VB code and now I am trying to save the data in an existing Access database. I am having trouble tranferring the data. Anybody have any code suggestions?
|
Click to See Complete Forum and Search --> : Copying data from one database to another RobP May 25th, 1999, 02:55 PM I am opening an Excel spreadsheet as a database using VB code and now I am trying to save the data in an existing Access database. I am having trouble tranferring the data. Anybody have any code suggestions? Ravi Kiran May 26th, 1999, 02:37 AM Hi, I had never worked on Excel sheets before. Thanks, your problem gave me a chance to!. It looks as if the naming of the fields in Excel sheet is a little difficult. I think/hope they would have explained that in docs. Anyway, here is what i found: 1. You have to access the "SheetN" as a recordset. 2. If the sheetN already consists of something, then the Field names start with the contents of the first Non-empty cell, 3. If the sheet is totally empty, then the (default) Field names would be "F1", "F2" etc. Are you transfering from Access to Excel or viceversa?. Here is a piece of code that transfers data from a access mdb to Excel sheet. (VB 5.0's code.) Scene : A form with 2 data controls and a btn. Data1 opens the Access database, and data2 Excel sheet. i.e data2.connect = "Excel 8", .Databasename is some Xls . On btn click, the contents of the 3 fields of the db would be transfered to the approp sheet. private Sub Command1_Click() Dim lpRecset1 as Recordset, lprecset2 as Recordset set lpRecset1 = Data1.Recordset set lprecset2 = Data2.Database.OpenRecordset("Sheet3$") ' CHANGE here to approp. sheet 'set lprecset2 = Data2.Recordset ' you can use this also lpRecset1.MoveFirst If lprecset2.RecordCount <> 0 then lprecset2.MoveFirst lprecset2.Edit else lprecset2.AddNew End If Do ' change in these lines to approp fileds of the database. lprecset2("F1") = lpRecset1("ID") lprecset2("f2") = lpRecset1("Eng string") lprecset2("F3") = lpRecset1("Jap string") lprecset2.Update lpRecset1.MoveNext If lpRecset1.EOF = true then Exit Do If lprecset2.EOF then lprecset2.AddNew else lprecset2.MoveNext lprecset2.Edit End If Loop 'While Not lpRecset1.EOF set lpRecset1 = nothing set lprecset2 = nothing End Sub Open the Xls and check. Play around with the names a little. It was an interesting problem!. I hope this solves it. Ravi Kiran RobP May 26th, 1999, 08:59 AM I appreciate your response Ravi! I am actually starting with an Excel spreadsheet which is a timesheet. Then I am pulling the employee name from a certain cell, the project numbers from a certain range of cells and the corresponding hours from another range of cells and copying them into a table in an Access database. Unfortunately the existing timesheet is not totally setup in a table form (i.e. the employee name is at the top and underneath the project numbers and hours are in a table) Do you think the code you wrote may still work? I will continue to work on it, but if you have any further ideas, I would appreciate it. Thanks, Rob codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |