' ******************************************************************************** ' 函数功能:判断是否有此车辆表,若无则创建一个新表 ' data_lx ' cl_fl ' str_cph ' ******************************************************************************** Function New_che(Data_lx As String, Cl_fl As String, Str_cph As String) On Error Resume Next '防错Dim ICflag As Boolean Dim tang_f As Boolean Dim cc2 As String Dim Record_long As Integer Dim ICdb As Database Dim ictable As TableDef ICflag = True Dim i As Integer 'Set db = OpenDatabase("C:\MyDB.mdb", False, True, ";PWD=PASSWORD") Set ICdb = DBEngine.Workspaces(0).OpenDatabase(App.Path + Data_lx, False, False, ";PWD=asdfghjkl") For i = 0 To ICdb.TableDefs.Count - 1 If UCase(ICdb.TableDefs(i).Name) = Str_cph Then ICflag = False Exit For End If Next i If ICflag = True Then If (Data_lx = "\ICdb.mdb") Then Record_long = 180 Else Record_long = 180 End If
'创建ACCESS文件
Dim sCreatAccessFile As String
If txtCreateAccessName.Text = "" Then
MsgBox "请输入需创建ACCESS文件名及路径!", vbExclamation, "提示"
txtCreateAccessName.SetFocus
Exit Sub
End If
sCreatAccessFile = txtCreateAccessName.Text
sCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;" & _
"Data Source=" & sCreatAccessFile
On Error GoTo ErrorCreateDataBase
Cat.Create sCnn MsgBox "创建成功!", vbInformation, "提示"
Exit Sub
ErrorCreateDataBase: MsgBox Err.Description & "请重新输入数据库名!", vbExclamation, "提示"
txtCreateAccessName.SetFocus
Exit Sub
End Sub
Dim MyTable As TableDef, MyField As Field
Dim MyDatabase As Database
Set MyDatabase = CreateDatabase(cProgramPath + "\Trade.mdb", dbLangGeneral, dbEncrypt)
Set MyTable = MyDatabase.CreateTableDef("System")
Set MyField = MyTable.CreateField("APPLNAME", dbText, 100) '项目名称
MyTable.Fields.Append MyField
Set MyField = MyTable.CreateField("SERVERNAME", dbText, 15) '服务器名称
MyTable.Fields.Append MyField
Set MyField = MyTable.CreateField("LOGONNAME", dbText, 15) '数据库用户
MyTable.Fields.Append MyField
Set MyField = MyTable.CreateField("PASSWORD", dbText, 15) '数据库口令
MyTable.Fields.Append MyField
Set MyField = MyTable.CreateField("DATANAME", dbText, 15) '数据库名称
MyTable.Fields.Append MyField
MyDatabase.TableDefs.Append MyTable
'MyDatabase.NewPassword "", "allway"
MyDatabase.Close
不过如果你的是很多表,很多字段,一行行的SQL是很痛苦的,
我做过,很麻烦,不过效果不错,不知那位有没有其它更好的方法~~
' ********************************************************************************
' 函数功能:判断是否有此车辆表,若无则创建一个新表
' data_lx
' cl_fl
' str_cph
' ********************************************************************************
Function New_che(Data_lx As String, Cl_fl As String, Str_cph As String)
On Error Resume Next '防错Dim ICflag As Boolean
Dim tang_f As Boolean
Dim cc2 As String
Dim Record_long As Integer
Dim ICdb As Database
Dim ictable As TableDef
ICflag = True
Dim i As Integer
'Set db = OpenDatabase("C:\MyDB.mdb", False, True, ";PWD=PASSWORD")
Set ICdb = DBEngine.Workspaces(0).OpenDatabase(App.Path + Data_lx, False, False, ";PWD=asdfghjkl")
For i = 0 To ICdb.TableDefs.Count - 1
If UCase(ICdb.TableDefs(i).Name) = Str_cph Then
ICflag = False
Exit For
End If
Next i
If ICflag = True Then
If (Data_lx = "\ICdb.mdb") Then
Record_long = 180
Else
Record_long = 180
End If
Set ictable = ICdb.CreateTableDef(Str_cph)
With ictable
.Fields.Append .CreateField("超速设置", dbText, 8)
.Fields.Append .CreateField("车号", dbText, 12)
.Fields.Append .CreateField("超时设置", dbText, 40)
.Fields.Append .CreateField("K值", dbText, 10)
.Fields.Append .CreateField("分频系数", dbText, 8)
.Fields.Append .CreateField("营运日期", dbText, 10)
.Fields.Append .CreateField("总累程", dbText, 8)
.Fields.Append .CreateField("日累程", dbText, 8)
.Fields.Append .CreateField("最高时速", dbText, 3)
.Fields.Append .CreateField("日累时", dbText, 5)
.Fields.Append .CreateField("00:00-00:58", dbText, Record_long)
.Fields.Append .CreateField("01:00-01:58", dbText, Record_long)
.Fields.Append .CreateField("02:00-02:58", dbText, Record_long)
.Fields.Append .CreateField("03:00-03:58", dbText, Record_long)
.Fields.Append .CreateField("04:00-04:58", dbText, Record_long)
.Fields.Append .CreateField("05:00-05:58", dbText, Record_long)
.Fields.Append .CreateField("06:00-06:58", dbText, Record_long)
.Fields.Append .CreateField("07:00-07:58", dbText, Record_long)
.Fields.Append .CreateField("08:00-08:58", dbText, Record_long)
.Fields.Append .CreateField("09:00-09:58", dbText, Record_long)
.Fields.Append .CreateField("10:00-10:58", dbText, Record_long)
.Fields.Append .CreateField("11:00-11:58", dbText, Record_long)
.Fields.Append .CreateField("12:00-12:58", dbText, Record_long)
.Fields.Append .CreateField("13:00-13:58", dbText, Record_long)
.Fields.Append .CreateField("14:00-14:58", dbText, Record_long)
.Fields.Append .CreateField("15:00-15:58", dbText, Record_long)
.Fields.Append .CreateField("16:00-16:58", dbText, Record_long)
.Fields.Append .CreateField("17:00-17:58", dbText, Record_long)
.Fields.Append .CreateField("18:00-18:58", dbText, Record_long)
.Fields.Append .CreateField("19:00-19:58", dbText, Record_long)
.Fields.Append .CreateField("20:00-20:58", dbText, Record_long)
.Fields.Append .CreateField("21:00-21:58", dbText, Record_long)
.Fields.Append .CreateField("22:00-22:58", dbText, Record_long)
.Fields.Append .CreateField("23:00-23:58", dbText, Record_long)
.Fields.Append .CreateField("采集日期", dbText, 8)
End With
ICdb.TableDefs.Append ictable