I have the following error message on my VBA code
'USER DEFINED TYPE NOT DEFINED'
and it highlights the following as an error
Full code is
'USER DEFINED TYPE NOT DEFINED'
and it highlights the following as an error
Code:
db As Database
Code:
Sub UpdateS29consoldatabase()
Dim MyImp 'TB file name
Dim MyImpAdd 'TB file path
Dim FullAdd 'Full TB file name (inc path)
Dim vtSql$ 'SQL string used for the Access delete query
Dim db As Database 'Access Database
Dim rs As Recordset 'Used to loop through records in Access database
Dim r As Long 'Used to loop through cells in database
'Full Access Database address
MyImp = ThisWorkbook.Worksheets("Start").Range("C3").Value
MyImpAdd = ThisWorkbook.Worksheets("Start").Range("F3").Value
FullAdd = MyImpAdd & MyImp
'Set Access Database name
Set db = OpenDatabase(FullAdd)
'delete existing data in the database for this month
'create a Delete Query SQL string to do this
vtSql = ""
vtSql = vtSql & " DELETE ALL_DATA.*, ALL_DATA.Date "
vtSql = vtSql & " FROM ALL_DATA"
vtSql = vtSql & " WHERE (((ALL_DATA.Date)=#" & ThisWorkbook.Worksheets("Start").Range("B19").Value & "#))"
db.Execute vtSql
Set rs = db.OpenRecordset("ALL_DATA", dbOpenTable)
ThisWorkbook.Activate
'Name selected file
curr_wb = ActiveWorkbook.Name
'Start row for data
r = 2
'Final row for data
last_line = ThisWorkbook.Sheets("Final Output").Range("A" & r).End(xlDown).Row + 1
ThisWorkbook.Sheets("Final Output").Activate
'Loop through the data
Do While r < last_line
Application.StatusBar = "Transfering data into Access Database ... (" & r & " of " & last_line & ")"
'Add the data row by row to the Access database
With rs
.AddNew
.Fields("Date") = Range("a" & r).Value
.Fields("Hard Portfolio") = Range("b" & r).Value
.Fields("Pfolio Name") = Range("c" & r).Value
.Fields("HiPort Fund") = Range("d" & r).Value
.Fields("On Hiport Feed") = Range("e" & r).Value
.Fields("Group Magnitude Unit") = Range("f" & r).Value
.Fields("Feed Company") = Range("g" & r).Value
.Fields("Legal Entity") = Range("h" & r).Value
.Fields("Sub Fund") = Range("i" & r).Value
.Fields("Feed Buscat") = Range("j" & r).Value
.Fields("Abacus") = Range("k" & r).Value
.Fields("Unit Linked") = Range("l" & r).Value
.Fields("Asset Alloc") = Range("m" & r).Value
.Fields("PortfolioCode") = Range("n" & r).Value
.Fields("Industry Code") = Range("o" & r).Value
.Fields("Industry Class Description") = Range("p" & r).Value
.Fields("Issuer") = Range("q" & r).Value
.Fields("Stock") = Range("r" & r).Value
.Fields("Sedol") = Range("s" & r).Value
.Fields("Stock Description") = Range("t" & r).Value
.Fields("Holding") = Range("u" & r).Value
.Fields("Unit Cost") = Range("v" & r).Value
.Fields("BID Price (Local)") = Range("w" & r).Value
.Fields("BID Price(Pfolio)") = Range("x" & r).Value
.Fields("MID Price (Local)") = Range("y" & r).Value
.Fields("MID Price (Pfolio)") = Range("z" & r).Value
.Fields("Asset Currency") = Range("aa" & r).Value
.Fields("Capital Cost (Local)") = Range("ab" & r).Value
.Fields("Capital Cost(Pfolio)") = Range("ac" & r).Value
.Fields("Book Cost (Local)") = Range("ad" & r).Value
.Fields("Book Cost(Pfolio)") = Range("ae" & r).Value
.Fields("Clean Mkt Value (BID Local)") = Range("af" & r).Value
.Fields("Clean Mkt Value (MID Local)") = Range("ag" & r).Value
.Fields("Dirty Mkt Value (BID Local)") = Range("ah" & r).Value
.Fields("Dirty Mkt Value (MID Local)") = Range("ai" & r).Value
.Fields("Clean Mkt Value (BID Pfolio)") = Range("aj" & r).Value
.Fields("Clean Mkt Value (MID Pfolio)") = Range("ak" & r).Value
.Fields("Dirty Mkt Value (BID Pfolio)") = Range("al" & r).Value
.Fields("Dirty Mkt Value (MID Pfolio)") = Range("am" & r).Value
.Fields("Annual Income (Local)") = Range("an" & r).Value
.Fields("Annual Income(Pfolio)") = Range("ao" & r).Value
.Fields("Accrued Interest (Local)") = Range("ap" & r).Value
.Update
End With
r = r + 1
Loop
'Close the Access files and recordsets
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
Application.StatusBar = False
Application.ScreenUpdating = True
With Sheets("Start")
.Range("D31") = Format(Now, "dd-mmm-yy @ hh:mm:ss")
.Range("D32") = UCase(CreateObject("WScript.Network").UserName)
End With
MsgBox "Macro Complete"
Sheets("Start").Activate
End Sub