Movian
10-10-2008, 09:04 AM
hey,
after solving my problem yesterday i have stumbled upon a problem with a new feature i have been asked to develop.
This system is suposed to take a table of information and out put all that information to a spreadsheet.
That portion works fine, however the system also needs to be able to import a spreadsheet laid out in the same fashion.
i have created the following sub procedure in a module that is called from the form. However i keep getting a "No Current Record" on the myrs.edit line which imediatly follows the myrs.addnew!!!! so if i just added a new record how can it say there isn't one... :banghead:
any way any help would be very much apriciated :D
Public Sub ImportPhysicians()
Dim oApp As Object
Dim oDoc As Object
Dim count As Integer
Dim data(0 To 10) As String
Dim flag As Boolean
flag = True
count = 0
Set oApp = CreateObject("Excel.Application")
If oApp Is Nothing Then
MsgBox "The application is not available!", vbExclamation
End If
oApp.Workbooks.Open CurrentProject.path + "\Physicians.xls"
' open Table and export Physician Information
Dim mydb As DAO.Database, myrs As DAO.Recordset
Set mydb = CurrentDb()
Set myrs = mydb.OpenRecordset("tblPhys")
On Error Resume Next
myrs.MoveLast
myrs.MoveFirst
On Error GoTo 0
While Not myrs.EOF
DoCmd.RunCommand acCmdDeleteRecord
myrs.MoveNext
Wend
count = 0
While flag = True
count = count + 1
data(0) = oApp.activeworkbook.worksheets("Sheet1").Range("A" + Mid(str(count + 1), 2, 1)).value
data(1) = oApp.activeworkbook.worksheets("Sheet1").Range("B" + Mid(str(count + 1), 2, 1)).value
data(2) = oApp.activeworkbook.worksheets("Sheet1").Range("C" + Mid(str(count + 1), 2, 1)).value
data(3) = oApp.activeworkbook.worksheets("Sheet1").Range("D" + Mid(str(count + 1), 2, 1)).value
data(4) = oApp.activeworkbook.worksheets("Sheet1").Range("E" + Mid(str(count + 1), 2, 1)).value
data(5) = oApp.activeworkbook.worksheets("Sheet1").Range("F" + Mid(str(count + 1), 2, 1)).value
data(6) = oApp.activeworkbook.worksheets("Sheet1").Range("G" + Mid(str(count + 1), 2, 1)).value
data(7) = oApp.activeworkbook.worksheets("Sheet1").Range("H" + Mid(str(count + 1), 2, 1)).value
data(8) = oApp.activeworkbook.worksheets("Sheet1").Range("I" + Mid(str(count + 1), 2, 1)).value
data(9) = oApp.activeworkbook.worksheets("Sheet1").Range("J" + Mid(str(count + 1), 2, 1)).value
data(10) = oApp.activeworkbook.worksheets("Sheet1").Range("K" + Mid(str(count + 1), 2, 1)).value
If data(0) = Null Or data(0) = "" Then
flag = False
End If
If flag = True Then
myrs.AddNew
myrs.MoveFirst
myrs.Edit
myrs.Fields("PhysID") = count
myrs.Fields("Referring Phys") = data(0)
myrs.Fields("FirstName") = data(1)
myrs.Fields("LastName") = data(2)
myrs.Fields("Addr") = data(3)
myrs.Fields("City") = data(4)
myrs.Fields("St") = data(5)
myrs.Fields("Zip") = data(6)
myrs.Fields("phone") = data(7)
myrs.Fields("fax") = data(8)
myrs.Fields("e-mail") = data(9)
myrs.Fields("comment") = data(10)
myrs.Update
End If
Wend
oApp.activeworkbook.Close
oApp.Close
Set oDoc = Nothing ' free memory
Set oApp = Nothing ' free memory
myrs.Close
after solving my problem yesterday i have stumbled upon a problem with a new feature i have been asked to develop.
This system is suposed to take a table of information and out put all that information to a spreadsheet.
That portion works fine, however the system also needs to be able to import a spreadsheet laid out in the same fashion.
i have created the following sub procedure in a module that is called from the form. However i keep getting a "No Current Record" on the myrs.edit line which imediatly follows the myrs.addnew!!!! so if i just added a new record how can it say there isn't one... :banghead:
any way any help would be very much apriciated :D
Public Sub ImportPhysicians()
Dim oApp As Object
Dim oDoc As Object
Dim count As Integer
Dim data(0 To 10) As String
Dim flag As Boolean
flag = True
count = 0
Set oApp = CreateObject("Excel.Application")
If oApp Is Nothing Then
MsgBox "The application is not available!", vbExclamation
End If
oApp.Workbooks.Open CurrentProject.path + "\Physicians.xls"
' open Table and export Physician Information
Dim mydb As DAO.Database, myrs As DAO.Recordset
Set mydb = CurrentDb()
Set myrs = mydb.OpenRecordset("tblPhys")
On Error Resume Next
myrs.MoveLast
myrs.MoveFirst
On Error GoTo 0
While Not myrs.EOF
DoCmd.RunCommand acCmdDeleteRecord
myrs.MoveNext
Wend
count = 0
While flag = True
count = count + 1
data(0) = oApp.activeworkbook.worksheets("Sheet1").Range("A" + Mid(str(count + 1), 2, 1)).value
data(1) = oApp.activeworkbook.worksheets("Sheet1").Range("B" + Mid(str(count + 1), 2, 1)).value
data(2) = oApp.activeworkbook.worksheets("Sheet1").Range("C" + Mid(str(count + 1), 2, 1)).value
data(3) = oApp.activeworkbook.worksheets("Sheet1").Range("D" + Mid(str(count + 1), 2, 1)).value
data(4) = oApp.activeworkbook.worksheets("Sheet1").Range("E" + Mid(str(count + 1), 2, 1)).value
data(5) = oApp.activeworkbook.worksheets("Sheet1").Range("F" + Mid(str(count + 1), 2, 1)).value
data(6) = oApp.activeworkbook.worksheets("Sheet1").Range("G" + Mid(str(count + 1), 2, 1)).value
data(7) = oApp.activeworkbook.worksheets("Sheet1").Range("H" + Mid(str(count + 1), 2, 1)).value
data(8) = oApp.activeworkbook.worksheets("Sheet1").Range("I" + Mid(str(count + 1), 2, 1)).value
data(9) = oApp.activeworkbook.worksheets("Sheet1").Range("J" + Mid(str(count + 1), 2, 1)).value
data(10) = oApp.activeworkbook.worksheets("Sheet1").Range("K" + Mid(str(count + 1), 2, 1)).value
If data(0) = Null Or data(0) = "" Then
flag = False
End If
If flag = True Then
myrs.AddNew
myrs.MoveFirst
myrs.Edit
myrs.Fields("PhysID") = count
myrs.Fields("Referring Phys") = data(0)
myrs.Fields("FirstName") = data(1)
myrs.Fields("LastName") = data(2)
myrs.Fields("Addr") = data(3)
myrs.Fields("City") = data(4)
myrs.Fields("St") = data(5)
myrs.Fields("Zip") = data(6)
myrs.Fields("phone") = data(7)
myrs.Fields("fax") = data(8)
myrs.Fields("e-mail") = data(9)
myrs.Fields("comment") = data(10)
myrs.Update
End If
Wend
oApp.activeworkbook.Close
oApp.Close
Set oDoc = Nothing ' free memory
Set oApp = Nothing ' free memory
myrs.Close