E
EagleOne@microsoftdiscussiongroups
2003
The VBA module exists in Tools.mdb
So I run NewAccessDatabase() from Tools.md
I get pieces parts to work but not the whole thing.
The issue revolved around which database is the CurrentDb
Below will create Recordset("STARSData") but in Tools.mdb
whereas I want the Recordset("STARSData") in 1492 Recon.mdb
This code creates a new db appAccess.NewCurrentDatabase strDB
But I cannot "SET" 1492 Recon.mdb because "it is already open"
If I cannot open it then dbs.CreateTableDef("STARSData") is created either
not at all or in the wrong database (typically "Tools/mdb"
Sub NewAccessDatabase()
Dim appAccess As Access.Application
Dim dbs As Object, tdf As Object, fld As Variant
Dim tdf As Object, fld As Variant
Dim strDB As String
Dim dbs As DAO.Database
strDB = "C:\Documents and Settings\1492 Recon.mdb"
' Create new instance of Microsoft Access.
Set appAccess = CreateObject("Access.Application.11")
' Open database in Microsoft Access window.
appAccess.NewCurrentDatabase strDB
'Set dbs = DBEngine.Workspaces(0).OpenDatabase(strDB)
' Get Database object variable.
' Create new table.
'Set dbs = appAccess.CurrentDb.OpenRecordset("STARSData")
Set tdf = dbs.CreateTableDef("STARSData")
' Create fields in new table.
With tdf
.Fields.Append .CreateField("AMT", dbDouble, 19)
.Fields.Append .CreateField("DR_CR", dbText, 4)
.Fields.Append .CreateField("DOC_NUMBER", dbText, 17)
.Fields.Append .CreateField("ACRN", dbText, 6)
.Fields.Append .CreateField("FIPC", dbText, 6)
.Fields.Append .CreateField("REG_NUMB", dbText, 5)
.Fields.Append .CreateField("BFY", dbText, 5)
.Fields.Append .CreateField("APPN_SYMB", dbText, 6)
.Fields.Append .CreateField("SBHD", dbText, 6)
.Fields.Append .CreateField("BCN", dbText, 7)
.Fields.Append .CreateField("SA_FX", dbText, 4)
.Fields.Append .CreateField("AAA_UIC", dbText, 7)
.Fields.Append .CreateField("TRAN_TYPE", dbText, 10)
.Fields.Append .CreateField("DOV_NUMB", dbText, 9)
.Fields.Append .CreateField("DOV_DATE", dbText, 12)
.Fields.Append .CreateField("PIIN", dbText, 15)
.Fields.Append .CreateField("COST_CODE", dbText, 14)
.Fields.Append .CreateField("OBJ_CODE", dbText, 6)
.Fields.Append .CreateField("FUND_CODE", dbText, 6)
.Fields.Append .CreateField("JON_UIC", dbText, 7)
.Fields.Append .CreateField("JON_FY", dbText, 5)
.Fields.Append .CreateField("JON_SERIAL", dbText, 8)
.Fields.Append .CreateField("EFFEC_DATE", dbText, 12)
.Fields.Append .CreateField("EXEC_CODE", dbText, 6)
.Fields.Append .CreateField("USER_ID", dbText, 8)
End With
dbs.TableDefs.Append tdf
Set rs = appAccess.CurrentDb.CreateProperty("STARSData")
dbs.Execute "SELECT * INTO STARSData FROM
Text;FMT=Fixed;HDR=Yes;DATABASE=" _
& "My Documents\;].[STARSData#txt];", dbFailOnError
rs.MoveFirst
rs.Delete
rs.Delete
rs.Delete
Set appAccess = Nothing
End Sub
Need help to make this code work?
TIA EagleOne
The VBA module exists in Tools.mdb
So I run NewAccessDatabase() from Tools.md
I get pieces parts to work but not the whole thing.
The issue revolved around which database is the CurrentDb
Below will create Recordset("STARSData") but in Tools.mdb
whereas I want the Recordset("STARSData") in 1492 Recon.mdb
This code creates a new db appAccess.NewCurrentDatabase strDB
But I cannot "SET" 1492 Recon.mdb because "it is already open"
If I cannot open it then dbs.CreateTableDef("STARSData") is created either
not at all or in the wrong database (typically "Tools/mdb"
Sub NewAccessDatabase()
Dim appAccess As Access.Application
Dim dbs As Object, tdf As Object, fld As Variant
Dim tdf As Object, fld As Variant
Dim strDB As String
Dim dbs As DAO.Database
strDB = "C:\Documents and Settings\1492 Recon.mdb"
' Create new instance of Microsoft Access.
Set appAccess = CreateObject("Access.Application.11")
' Open database in Microsoft Access window.
appAccess.NewCurrentDatabase strDB
'Set dbs = DBEngine.Workspaces(0).OpenDatabase(strDB)
' Get Database object variable.
' Create new table.
'Set dbs = appAccess.CurrentDb.OpenRecordset("STARSData")
Set tdf = dbs.CreateTableDef("STARSData")
' Create fields in new table.
With tdf
.Fields.Append .CreateField("AMT", dbDouble, 19)
.Fields.Append .CreateField("DR_CR", dbText, 4)
.Fields.Append .CreateField("DOC_NUMBER", dbText, 17)
.Fields.Append .CreateField("ACRN", dbText, 6)
.Fields.Append .CreateField("FIPC", dbText, 6)
.Fields.Append .CreateField("REG_NUMB", dbText, 5)
.Fields.Append .CreateField("BFY", dbText, 5)
.Fields.Append .CreateField("APPN_SYMB", dbText, 6)
.Fields.Append .CreateField("SBHD", dbText, 6)
.Fields.Append .CreateField("BCN", dbText, 7)
.Fields.Append .CreateField("SA_FX", dbText, 4)
.Fields.Append .CreateField("AAA_UIC", dbText, 7)
.Fields.Append .CreateField("TRAN_TYPE", dbText, 10)
.Fields.Append .CreateField("DOV_NUMB", dbText, 9)
.Fields.Append .CreateField("DOV_DATE", dbText, 12)
.Fields.Append .CreateField("PIIN", dbText, 15)
.Fields.Append .CreateField("COST_CODE", dbText, 14)
.Fields.Append .CreateField("OBJ_CODE", dbText, 6)
.Fields.Append .CreateField("FUND_CODE", dbText, 6)
.Fields.Append .CreateField("JON_UIC", dbText, 7)
.Fields.Append .CreateField("JON_FY", dbText, 5)
.Fields.Append .CreateField("JON_SERIAL", dbText, 8)
.Fields.Append .CreateField("EFFEC_DATE", dbText, 12)
.Fields.Append .CreateField("EXEC_CODE", dbText, 6)
.Fields.Append .CreateField("USER_ID", dbText, 8)
End With
dbs.TableDefs.Append tdf
Set rs = appAccess.CurrentDb.CreateProperty("STARSData")
dbs.Execute "SELECT * INTO STARSData FROM
Text;FMT=Fixed;HDR=Yes;DATABASE=" _
& "My Documents\;].[STARSData#txt];", dbFailOnError
rs.MoveFirst
rs.Delete
rs.Delete
rs.Delete
Set appAccess = Nothing
End Sub
Need help to make this code work?
TIA EagleOne