runtime error in the application

From: Bineesh Namboodiri (BineeshNamboodiri_at_discussions.microsoft.com)
Date: 10/27/04


Date: Wed, 27 Oct 2004 02:25:10 -0700

when iam running a process called convert(user-defined)in my application
which is to convert data from excel *** to sql server table it's giving me
error that "runtime error 2147417851(800010105)
Automation error, server threws an exception". this error is coming only to
one process in my four process . all other are running fine . it's an
application which support data warehousing concepts . the database is
sqlserver 2000 & VB 6.0. This process is to convert data From EXcel file to
a table in sql server which is used for cube creation in further steps.[my
other process takes data from text file only & this process takes data from
excel file].Also this process is working from my source code . but when iam
trying it from exe file of the application it's giving me this error.
  
iam attaching the part of source code

Private Function ConvertInvestments(crtbrname)
    Dim oBook As Excel.Workbook
    Dim o*** As Excel.Work***
    Dim objExcel As Excel.Application
    Dim rstInvest As ADODB.Recordset
    Dim writeStr() As Double
    
    Set objExcel = New Excel.Application
    Set oBook = objExcel.Workbooks.Open((APath & "\" & crtbrname &
"\Investment.xls"))
    Set oSheet = oBook.Worksheets(1)
    Set rstInvest = New ADODB.Recordset
    Call InitRecset(rstInvest, "Truncate Table Investment")
    Set rstInvest = Nothing
    Call DeclareRec(rstInvest, "Select * from Investment")
    preProduct = ""
    preCurrency = ""
    For lpVar = 2 To o***.Columns.CurrentRegion.Rows.Count
        If Trim(preProduct) <> Trim(o***.Range("A" & lpVar).Value) Then
Call getHOProductCode(Trim(o***.Range("A" & lpVar).Value),
Trim(o***.Range("A" & lpVar).Value), Trim(o***.Range("E" & lpVar).Value))
        If Trim(preCurrency) <> Trim(o***.Range("F" & lpVar).Value) Then
Call getCurrencyCode(Trim(o***.Range("F" & lpVar).Value))
        If HOProductCode <> 0 Then
            rstInvest.AddNew
            rstInvest!ProductCode = HOProductCode
            rstInvest!Description = Left(Trim(o***.Range("B" &
lpVar).Value), 30)
            If Trim(o***.Range("D" & lpVar).Value) <> "" Then
                rstInvest!InterestRate = o***.Range("D" & lpVar).Value * 100
            Else
                rstInvest!InterestRate = 0
            End If
            If IsDate(o***.Range("C" & lpVar).Value) = False Then
                rstInvest!MaturityDate = "01/01/1900"
            ElseIf CDate(o***.Range("C" & lpVar).Value) <
CDate("01/01/1900") Or CDate(o***.Range("C" & lpVar).Value) >
CDate("01/01/2079") Then
                rstInvest!MaturityDate = "01/01/1900"
            Else
                rstInvest!MaturityDate = CDate(o***.Range("C" &
lpVar).Value)
            End If
            rstInvest!Amount = (o***.Range("E" & lpVar).Value)
            rstInvest!CurrencyCode = CurrencyCode
            rstInvest!CurrencyRate = (o***.Range("G" & lpVar).Value)
        End If
    Next lpVar
    If Not rstInvest.EOF Then rstInvest.Update
    oBook.Close
    Set oBook = Nothing
    Set o*** = Nothing
    objExcel.Quit
    Set objExcel = Nothing
End Function

 iam also attaching the part where this function is called

If chkInvest.Value = vbChecked Then
            If (fs.FileExists(APath & "\" & crtbrname & "\Investment.xls"))
Then
                Call RefreshPrgBar("Investments", crtbrname)
                Call ConvertInvestments(crtbrname)
              
            End If