On error resume next
删除表
新建表
以前碰到过这种问题就是这么解决的...不过建议你换种方法来解决当前的问题,就是不要用这种删除新建表的方式,一般而言这种对数据库的操作很不正规...
 

解决方案 »

  1.   

    方 法 1: 
        Dim adoConnectionX As New ADODB.Connection 
        Dim adoSchemaRecordsetX As New ADODB.Recordset 
        'Ms SQL 7: 
        'adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Set adoSchemaRecordsetX = adoConnectionX.OpenSchema(adSchemaTables, Array(Empty, Empty, TestTableName, "Table")) 
        
        If Not adoSchemaRecordsetX.EOF Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        End If 
        
        方 法 2(引 用 Microsoft ADO Extensions 2.1 for DDL and Security (ADOX)): 
        ( 主 持 人 注 : 需 要 升 级 至 VB 6.0SP3) 
        Dim adoConnectionX As New ADODB.Connection 
        'Ms SQL 7: 
        adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        'adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim adoxCatalogX As New ADOX.Catalog 
        Set adoxCatalogX.ActiveConnection = adoConnectionX 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Dim adoxTableX As ADOX.Table 
        For Each adoxTableX In adoxCatalogX.Tables 
        If adoxTableX.Name = TestTableName Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        Exit For 
        End If 
        Next 
        主 持 人 注 : 方 法 2也 可 以 这 样 : 
        Private Sub Command1_Click() 
        Dim cat As ADOX.Catalog 
        Dim tbl As ADOX.Table 
        
        Set cat = New ADOX.Catalog 
        Set cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;" _ 
        & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb" 
        On Error Resume Next 
        Set tbl = cat.Tables("MyTable") 
        
        If tbl Is Nothing Then 
        MsgBox "MyTable doesn't exist" 
        Else 
        MsgBox "MyTable exists" 
        Set tbl = Nothing 
        End If 
        
        Set cat = Nothing 
        Set con = Nothing 
        End Sub 
      

  2.   

    方 法 1: 
        Dim adoConnectionX As New ADODB.Connection 
        Dim adoSchemaRecordsetX As New ADODB.Recordset 
        'Ms SQL 7: 
        'adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Set adoSchemaRecordsetX = adoConnectionX.OpenSchema(adSchemaTables, Array(Empty, Empty, TestTableName, "Table")) 
        
        If Not adoSchemaRecordsetX.EOF Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        End If 
        
        方 法 2(引 用 Microsoft ADO Extensions 2.1 for DDL and Security (ADOX)): 
        ( 主 持 人 注 : 需 要 升 级 至 VB 6.0SP3) 
        Dim adoConnectionX As New ADODB.Connection 
        'Ms SQL 7: 
        adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        'adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim adoxCatalogX As New ADOX.Catalog 
        Set adoxCatalogX.ActiveConnection = adoConnectionX 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Dim adoxTableX As ADOX.Table 
        For Each adoxTableX In adoxCatalogX.Tables 
        If adoxTableX.Name = TestTableName Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        Exit For 
        End If 
        Next 
        主 持 人 注 : 方 法 2也 可 以 这 样 : 
        Private Sub Command1_Click() 
        Dim cat As ADOX.Catalog 
        Dim tbl As ADOX.Table 
        
        Set cat = New ADOX.Catalog 
        Set cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;" _ 
        & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb" 
        On Error Resume Next 
        Set tbl = cat.Tables("MyTable") 
        
        If tbl Is Nothing Then 
        MsgBox "MyTable doesn't exist" 
        Else 
        MsgBox "MyTable exists" 
        Set tbl = Nothing 
        End If 
        
        Set cat = Nothing 
        Set con = Nothing 
        End Sub 
      

  3.   

    方 法 1: 
        Dim adoConnectionX As New ADODB.Connection 
        Dim adoSchemaRecordsetX As New ADODB.Recordset 
        'Ms SQL 7: 
        'adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Set adoSchemaRecordsetX = adoConnectionX.OpenSchema(adSchemaTables, Array(Empty, Empty, TestTableName, "Table")) 
        
        If Not adoSchemaRecordsetX.EOF Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        End If 
        
        方 法 2(引 用 Microsoft ADO Extensions 2.1 for DDL and Security (ADOX)): 
        ( 主 持 人 注 : 需 要 升 级 至 VB 6.0SP3) 
        Dim adoConnectionX As New ADODB.Connection 
        'Ms SQL 7: 
        adoConnectionX.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Data Source=yuer;DataBase=NorthwindCS" 
        'Access 2000: 
        'adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\DRptPlus\DRptPlus\Data\NWind2K.mdb;Persist Security Info=False" 
        
        Dim adoxCatalogX As New ADOX.Catalog 
        Set adoxCatalogX.ActiveConnection = adoConnectionX 
        
        Dim TestTableName As String 
        TestTableName = "产 品 " 
        
        Dim adoxTableX As ADOX.Table 
        For Each adoxTableX In adoxCatalogX.Tables 
        If adoxTableX.Name = TestTableName Then 
        MsgBox "[" & TestTableName & "]表 已 存 在 !" 
        Exit For 
        End If 
        Next 
        主 持 人 注 : 方 法 2也 可 以 这 样 : 
        Private Sub Command1_Click() 
        Dim cat As ADOX.Catalog 
        Dim tbl As ADOX.Table 
        
        Set cat = New ADOX.Catalog 
        Set cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.3.51;" _ 
        & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Biblio.mdb" 
        On Error Resume Next 
        Set tbl = cat.Tables("MyTable") 
        
        If tbl Is Nothing Then 
        MsgBox "MyTable doesn't exist" 
        Else 
        MsgBox "MyTable exists" 
        Set tbl = Nothing 
        End If 
        
        Set cat = Nothing 
        Set con = Nothing 
        End Sub 
      

  4.   

    '先加载dao,使用dao方法
     
        Dim wjdb As Database
        Dim wjtb As TableDef
        Set wjdb = OpenDatabase("文件全路径名.mdb")
       
      For Each wjtb In wjdb.TableDefs
          if wjtb.name = "你的表名" then msg "存在"  
      Next'我也是昨天学的
      

  5.   

    wangjue28是对的,哎呀,又来晚了