VB.NET - 使用ADOX修改MS Access表名

时间:2013-04-03 21:16:16

标签: vb.net adodb adox

我正在尝试根据两个文本框输入修改表名。我有一个表单使用OleDb创建表,所以我想使用该表单中输入的信息来搜索数据库中的表,然后将其重命名为当前表单上的用途。

示例输出 从      AAAAAAA_000 至      BBBBBBB_111

Import ADOX
Import ADODB

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnModify.Click
    Dim ADOXCatalog As New ADOX.Catalog
    Dim ADOConnection As New ADODB.Connection
    Dim uc As Char = "_"
    ADOConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\Users\...\Documents\Visual Studio 2012\Projects\WindowsApplication3\WindowsApplication3\timer.mdb;" & _
    "Jet OLEDB:Engine Type=5;")

    ADOXCatalog.ActiveConnection = ADOConnection
    ADOXCatalog.Tables('" & frmOpen.TextBox1.Text & uc.ToString & frmOpen.TextBox2.Text & "').Name ='" & txtTextBox1.Text & uc.ToString & TextBox2.Text & "'

    ADOXCatalog.ActiveConnection.Close()
    ADOXCatalog.ActiveConnection = Nothing

    Me.Close()

End Sub

2 个答案:

答案 0 :(得分:0)

注意:我假设可以通过设置Name属性重命名该表 但是,我还没有这样做

dim oldTableName as string
dim newTableName as string

oldTableName = frmOpen.TextBox1.Text & uc.ToString & frmOpen.TextBox2.Text
newTableName = txtTextBox1.Text & uc.ToString & TextBox2.Text

ADOXCatalog.Tables(oldTableName).Name = newTableName

要考虑几点

  • TextBox1TextBox2更改为适当的名称,例如 TablePrefixTableSuffix
  • uc.ToString时您不需要uc 是一个字符串(例如const uc as String = "_"

答案 1 :(得分:0)

我找到了一种修改表名的方法。我必须使用ADOX.Table语句将for添加到代码中并使用它来查找原始表名(基于frmOpen窗口中的数据),并带有if / {{1声明。

then