我正在尝试根据两个文本框输入修改表名。我有一个表单使用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
答案 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
要考虑几点
TextBox1
,TextBox2
更改为适当的名称,例如
TablePrefix
,TableSuffix
。uc.ToString
时您不需要uc
是一个字符串(例如const uc as String = "_"
)答案 1 :(得分:0)
我找到了一种修改表名的方法。我必须使用ADOX.Table
语句将for
添加到代码中并使用它来查找原始表名(基于frmOpen窗口中的数据),并带有if
/ {{1声明。
then