Public Function ExistTable(findTable As String, Cn As ADODB.Connection) As String Dim rstSchema As New ADODB.Recordset rstSchema.Open "select * from sysobjects where name = '" & findTable & "' ", Cn, adOpenKeyset, adLockOptimistic If rstSchema.RecordCount > 0 Then ExistTable = 1 Else ExistTable = 0 End If End Function
function TableNameExist(byval researchtablename as string) as boolean Dim con as string dim db as new adodb.connection 'con 对应你要连接库类型的字符串 con="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databasename ";Pesetrsist Security Info=False" set db =new adodb.connection db.open con dim tablename as adodb.recordset set tablename=db.openschema(adschematables) TableNameExist=false do until (tablename.eof or TableNameExist) if tablename!table_name=researchtablename then TableNameExist=true endif loop end function
Public Function TableExists(DatabaseName As String, _ TableName As String) As Boolean'DataBaseName is the file/path name of the database 'with the field you want to test 'tablename is the table which you want to test 'if database doesn't exist, an error is raisedDim oDB As Database, td As TableDefOn Error GoTo errorhandler Set oDB = Workspaces(0).OpenDatabase(DatabaseName) On Error Resume NextSet td = oDB.TableDefs(TableName) TableExists = Err.Number = 0 oDB.Closeexit functionerrorhandler:Err.Raise Err.Number Exit Functionend function
'ADO:Public Function TableExists(DatabaseName As String, _ TableName As String) As BooleanDim cn As ADODB.Connection, rs As ADODB.RecordsetOn Error GoTo errorhandler cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabaseName On Error Resume NextSet rs = cn.Execute("SELECT * FROM " & TableName) TableExists = Err.Number = 0 rs.Close Set rs = Nothing cn.Close Set cn = NothingExit functionerrorhandler:Err.Raise Err.NumberEnd function
if tablename!table_name=researchtablename then TableNameExist=true endif 这句改为 if tablename!table_name=researchtablename then TableNameExist=true else tablename.movenext endif
if rs.recordcound=0 then
不存在
endif
否则,建立关于表名的表,如果有系统表的存在则
表的名字在 msystables 的 tablename 中
Dim rstSchema As New ADODB.Recordset
rstSchema.Open "select * from sysobjects where name = '" & findTable & "' ", Cn, adOpenKeyset, adLockOptimistic
If rstSchema.RecordCount > 0 Then
ExistTable = 1
Else
ExistTable = 0
End If
End Function
Dim con as string
dim db as new adodb.connection
'con 对应你要连接库类型的字符串
con="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databasename ";Pesetrsist Security Info=False"
set db =new adodb.connection
db.open con
dim tablename as adodb.recordset
set tablename=db.openschema(adschematables)
TableNameExist=false
do until (tablename.eof or TableNameExist)
if tablename!table_name=researchtablename then
TableNameExist=true
endif
loop
end function
TableName As String) As Boolean'DataBaseName is the file/path name of the database
'with the field you want to test
'tablename is the table which you want to test
'if database doesn't exist, an error is raisedDim oDB As Database, td As TableDefOn Error GoTo errorhandler
Set oDB = Workspaces(0).OpenDatabase(DatabaseName)
On Error Resume NextSet td = oDB.TableDefs(TableName)
TableExists = Err.Number = 0
oDB.Closeexit functionerrorhandler:Err.Raise Err.Number
Exit Functionend function
TableName As String) As BooleanDim cn As ADODB.Connection, rs As ADODB.RecordsetOn Error GoTo errorhandler
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabaseName
On Error Resume NextSet rs = cn.Execute("SELECT * FROM " & TableName)
TableExists = Err.Number = 0
rs.Close
Set rs = Nothing
cn.Close
Set cn = NothingExit functionerrorhandler:Err.Raise Err.NumberEnd function
TableNameExist=true
endif
这句改为
if tablename!table_name=researchtablename then
TableNameExist=true
else
tablename.movenext
endif