|
@@ -53,10 +53,10 @@ Public Sub ExportLinkedTable(ByVal tbl_name As String, ByVal obj_path As String)
|
|
|
OutFile.Write CurrentDb.TableDefs(tbl_name).SourceTableName
|
|
OutFile.Write CurrentDb.TableDefs(tbl_name).SourceTableName
|
|
|
OutFile.Write vbCrLf
|
|
OutFile.Write vbCrLf
|
|
|
|
|
|
|
|
- Dim Db As DAO.Database
|
|
|
|
|
- Set Db = CurrentDb
|
|
|
|
|
|
|
+ Dim db As DAO.Database
|
|
|
|
|
+ Set db = CurrentDb
|
|
|
Dim td As DAO.TableDef
|
|
Dim td As DAO.TableDef
|
|
|
- Set td = Db.TableDefs(tbl_name)
|
|
|
|
|
|
|
+ Set td = db.TableDefs(tbl_name)
|
|
|
Dim idx As DAO.index
|
|
Dim idx As DAO.index
|
|
|
|
|
|
|
|
For Each idx In td.Indexes
|
|
For Each idx In td.Indexes
|
|
@@ -112,10 +112,12 @@ Private Function formatDecimal(ByVal tableName As String, ByVal fieldName As Str
|
|
|
End Function
|
|
End Function
|
|
|
|
|
|
|
|
' Save a Table Definition as SQL statement
|
|
' Save a Table Definition as SQL statement
|
|
|
-Public Sub ExportTableDef(Db As DAO.Database, td As DAO.TableDef, ByVal tableName As String, _
|
|
|
|
|
- ByVal directory As String)
|
|
|
|
|
- Dim filename As String
|
|
|
|
|
- filename = directory & tableName & ".sql"
|
|
|
|
|
|
|
+Public Sub ExportTableDef(ByRef db As DAO.Database, ByRef td As DAO.TableDef, ByVal directory As String)
|
|
|
|
|
+ Dim tableName, filename As String
|
|
|
|
|
+
|
|
|
|
|
+ tableName = td.name
|
|
|
|
|
+ filename = directory & to_filename(tableName) & ".sql"
|
|
|
|
|
+
|
|
|
Dim sql As String
|
|
Dim sql As String
|
|
|
Dim fieldAttributeSql As String
|
|
Dim fieldAttributeSql As String
|
|
|
Dim idx As DAO.index
|
|
Dim idx As DAO.index
|
|
@@ -152,7 +154,7 @@ Public Sub ExportTableDef(Db As DAO.Database, td As DAO.TableDef, ByVal tableNam
|
|
|
If idx.Required Then fieldAttributeSql = fieldAttributeSql & " NOT NULL "
|
|
If idx.Required Then fieldAttributeSql = fieldAttributeSql & " NOT NULL "
|
|
|
If idx.Foreign Then
|
|
If idx.Foreign Then
|
|
|
Set ff = idx.Fields
|
|
Set ff = idx.Fields
|
|
|
- fieldAttributeSql = fieldAttributeSql & formatReferences(Db, ff, tableName)
|
|
|
|
|
|
|
+ fieldAttributeSql = fieldAttributeSql & formatReferences(db, ff, tableName)
|
|
|
End If
|
|
End If
|
|
|
If Len(fieldAttributeSql) > 0 Then fieldAttributeSql = " CONSTRAINT " & strName(idx.name) & fieldAttributeSql
|
|
If Len(fieldAttributeSql) > 0 Then fieldAttributeSql = " CONSTRAINT " & strName(idx.name) & fieldAttributeSql
|
|
|
End If
|
|
End If
|
|
@@ -170,7 +172,7 @@ Public Sub ExportTableDef(Db As DAO.Database, td As DAO.TableDef, ByVal tableNam
|
|
|
If Not idx.Foreign Then
|
|
If Not idx.Foreign Then
|
|
|
If Len(constraintSql) > 0 Then
|
|
If Len(constraintSql) > 0 Then
|
|
|
sql = sql & "," & vbCrLf & " " & constraintSql
|
|
sql = sql & "," & vbCrLf & " " & constraintSql
|
|
|
- sql = sql & formatReferences(Db, idx.Fields, tableName)
|
|
|
|
|
|
|
+ sql = sql & formatReferences(db, idx.Fields, tableName)
|
|
|
End If
|
|
End If
|
|
|
End If
|
|
End If
|
|
|
End If
|
|
End If
|
|
@@ -189,14 +191,14 @@ Public Sub ExportTableDef(Db As DAO.Database, td As DAO.TableDef, ByVal tableNam
|
|
|
|
|
|
|
|
End Sub
|
|
End Sub
|
|
|
|
|
|
|
|
-Private Function formatReferences(Db As DAO.Database, ff As Object, _
|
|
|
|
|
|
|
+Private Function formatReferences(db As DAO.Database, ff As Object, _
|
|
|
ByVal tableName As String) As String
|
|
ByVal tableName As String) As String
|
|
|
|
|
|
|
|
Dim rel As DAO.Relation
|
|
Dim rel As DAO.Relation
|
|
|
Dim sql As String
|
|
Dim sql As String
|
|
|
Dim f As DAO.Field
|
|
Dim f As DAO.Field
|
|
|
|
|
|
|
|
- For Each rel In Db.Relations
|
|
|
|
|
|
|
+ For Each rel In db.Relations
|
|
|
If (rel.foreignTable = tableName) Then
|
|
If (rel.foreignTable = tableName) Then
|
|
|
If FieldsIdentical(ff, rel.Fields) Then
|
|
If FieldsIdentical(ff, rel.Fields) Then
|
|
|
sql = " REFERENCES "
|
|
sql = " REFERENCES "
|
|
@@ -311,7 +313,7 @@ End Function
|
|
|
'
|
|
'
|
|
|
' RETURNS: True (it exists) or False (it does not exist).
|
|
' RETURNS: True (it exists) or False (it does not exist).
|
|
|
Private Function TableExists(ByVal TName As String) As Boolean
|
|
Private Function TableExists(ByVal TName As String) As Boolean
|
|
|
- Dim Db As DAO.Database
|
|
|
|
|
|
|
+ Dim db As DAO.Database
|
|
|
Dim Found As Boolean
|
|
Dim Found As Boolean
|
|
|
Dim test As String
|
|
Dim test As String
|
|
|
|
|
|
|
@@ -319,13 +321,13 @@ Private Function TableExists(ByVal TName As String) As Boolean
|
|
|
|
|
|
|
|
' Assume the table or query does not exist.
|
|
' Assume the table or query does not exist.
|
|
|
Found = False
|
|
Found = False
|
|
|
- Set Db = CurrentDb()
|
|
|
|
|
|
|
+ Set db = CurrentDb()
|
|
|
|
|
|
|
|
' Trap for any errors.
|
|
' Trap for any errors.
|
|
|
On Error Resume Next
|
|
On Error Resume Next
|
|
|
|
|
|
|
|
' See if the name is in the Tables collection.
|
|
' See if the name is in the Tables collection.
|
|
|
- test = Db.TableDefs(TName).name
|
|
|
|
|
|
|
+ test = db.TableDefs(TName).name
|
|
|
If err.Number <> NAME_NOT_IN_COLLECTION Then Found = True
|
|
If err.Number <> NAME_NOT_IN_COLLECTION Then Found = True
|
|
|
|
|
|
|
|
' Reset the error variable.
|
|
' Reset the error variable.
|
|
@@ -453,7 +455,7 @@ End Sub
|
|
|
|
|
|
|
|
|
|
|
|
|
' Kill Table if Exists
|
|
' Kill Table if Exists
|
|
|
-Private Sub KillTable(ByVal tblName As String, Db As Object)
|
|
|
|
|
|
|
+Private Sub KillTable(ByVal tblName As String, db As Object)
|
|
|
If TableExists(tblName) Then
|
|
If TableExists(tblName) Then
|
|
|
'Db.Execute "DROP TABLE [" & tblName & "]"
|
|
'Db.Execute "DROP TABLE [" & tblName & "]"
|
|
|
run_sql "DROP TABLE [" & tblName & "]"
|
|
run_sql "DROP TABLE [" & tblName & "]"
|
|
@@ -461,11 +463,11 @@ Private Sub KillTable(ByVal tblName As String, Db As Object)
|
|
|
End Sub
|
|
End Sub
|
|
|
|
|
|
|
|
Public Sub ImportLinkedTable(ByVal tblName As String, ByRef obj_path As String)
|
|
Public Sub ImportLinkedTable(ByVal tblName As String, ByRef obj_path As String)
|
|
|
- Dim Db As DAO.Database
|
|
|
|
|
|
|
+ Dim db As DAO.Database
|
|
|
Dim FSO As Object
|
|
Dim FSO As Object
|
|
|
Dim InFile As Object
|
|
Dim InFile As Object
|
|
|
|
|
|
|
|
- Set Db = CurrentDb
|
|
|
|
|
|
|
+ Set db = CurrentDb
|
|
|
Set FSO = CreateObject("Scripting.FileSystemObject")
|
|
Set FSO = CreateObject("Scripting.FileSystemObject")
|
|
|
|
|
|
|
|
Dim tempFilePath As String
|
|
Dim tempFilePath As String
|
|
@@ -489,7 +491,7 @@ err_notable_fin:
|
|
|
On Error GoTo Err_CreateLinkedTable:
|
|
On Error GoTo Err_CreateLinkedTable:
|
|
|
|
|
|
|
|
Dim td As DAO.TableDef
|
|
Dim td As DAO.TableDef
|
|
|
- Set td = Db.CreateTableDef(InFile.readline())
|
|
|
|
|
|
|
+ Set td = db.CreateTableDef(InFile.readline())
|
|
|
|
|
|
|
|
Dim connect As String
|
|
Dim connect As String
|
|
|
connect = InFile.readline()
|
|
connect = InFile.readline()
|
|
@@ -499,7 +501,7 @@ err_notable_fin:
|
|
|
td.connect = connect
|
|
td.connect = connect
|
|
|
|
|
|
|
|
td.SourceTableName = InFile.readline()
|
|
td.SourceTableName = InFile.readline()
|
|
|
- Db.TableDefs.Append td
|
|
|
|
|
|
|
+ db.TableDefs.Append td
|
|
|
|
|
|
|
|
GoTo Err_CreateLinkedTable_Fin
|
|
GoTo Err_CreateLinkedTable_Fin
|
|
|
|
|
|
|
@@ -540,8 +542,10 @@ End Sub
|
|
|
' Import Table Definition
|
|
' Import Table Definition
|
|
|
Public Sub ImportTableDef(ByVal tblName As String, ByVal directory As String)
|
|
Public Sub ImportTableDef(ByVal tblName As String, ByVal directory As String)
|
|
|
Dim filepath As String
|
|
Dim filepath As String
|
|
|
- filepath = directory & tblName & ".sql"
|
|
|
|
|
- Dim Db As Object ' DAO.Database
|
|
|
|
|
|
|
+
|
|
|
|
|
+ filepath = directory & to_filename(tblName) & ".sql"
|
|
|
|
|
+
|
|
|
|
|
+ Dim db As Object ' DAO.Database
|
|
|
Dim FSO As Object
|
|
Dim FSO As Object
|
|
|
Dim InFile As Object
|
|
Dim InFile As Object
|
|
|
Dim buf As String
|
|
Dim buf As String
|
|
@@ -562,9 +566,9 @@ Public Sub ImportTableDef(ByVal tblName As String, ByVal directory As String)
|
|
|
|
|
|
|
|
' open file for reading with Create=False, Unicode=True (USC-2 Little Endian format)
|
|
' open file for reading with Create=False, Unicode=True (USC-2 Little Endian format)
|
|
|
'Set InFile = fso.OpenTextFile(tempFileName, iomode:=ForReading, create:=False, Format:=TristateTrue)
|
|
'Set InFile = fso.OpenTextFile(tempFileName, iomode:=ForReading, create:=False, Format:=TristateTrue)
|
|
|
- Set Db = CurrentDb
|
|
|
|
|
|
|
+ Set db = CurrentDb
|
|
|
|
|
|
|
|
- KillTable tblName, Db
|
|
|
|
|
|
|
+ KillTable tblName, db
|
|
|
|
|
|
|
|
buf = ReadFile(filepath, "x-ansi")
|
|
buf = ReadFile(filepath, "x-ansi")
|
|
|
|
|
|
|
@@ -631,7 +635,7 @@ End Sub
|
|
|
' Import the lookup table `tblName` from `source\tables`.
|
|
' Import the lookup table `tblName` from `source\tables`.
|
|
|
Public Sub ImportTableData(ByVal tblName As String, ByVal obj_path As String)
|
|
Public Sub ImportTableData(ByVal tblName As String, ByVal obj_path As String)
|
|
|
'On Error GoTo err
|
|
'On Error GoTo err
|
|
|
- Dim Db As Object ' DAO.Database
|
|
|
|
|
|
|
+ Dim db As Object ' DAO.Database
|
|
|
Dim rs As Object ' DAO.Recordset
|
|
Dim rs As Object ' DAO.Recordset
|
|
|
Dim fieldObj As Object ' DAO.Field
|
|
Dim fieldObj As Object ' DAO.Field
|
|
|
Dim FSO As Object
|
|
Dim FSO As Object
|
|
@@ -650,11 +654,11 @@ Public Sub ImportTableData(ByVal tblName As String, ByVal obj_path As String)
|
|
|
|
|
|
|
|
' open file for reading with Create=False, Unicode=True (USC-2 Little Endian format)
|
|
' open file for reading with Create=False, Unicode=True (USC-2 Little Endian format)
|
|
|
Set InFile = FSO.OpenTextFile(tempFileName, iomode:=ForReading, Create:=False, Format:=TristateTrue)
|
|
Set InFile = FSO.OpenTextFile(tempFileName, iomode:=ForReading, Create:=False, Format:=TristateTrue)
|
|
|
- Set Db = CurrentDb
|
|
|
|
|
|
|
+ Set db = CurrentDb
|
|
|
|
|
|
|
|
'Db.Execute "DELETE FROM [" & tblName & "]"
|
|
'Db.Execute "DELETE FROM [" & tblName & "]"
|
|
|
run_sql "DELETE FROM [" & tblName & "]"
|
|
run_sql "DELETE FROM [" & tblName & "]"
|
|
|
- Set rs = Db.OpenRecordset(tblName)
|
|
|
|
|
|
|
+ Set rs = db.OpenRecordset(tblName)
|
|
|
buf = InFile.readline()
|
|
buf = InFile.readline()
|
|
|
|
|
|
|
|
Do Until InFile.AtEndOfStream
|
|
Do Until InFile.AtEndOfStream
|