2015-12-21 48 views
-1

我想创建新的MS Access数据库,通过从文本框中提供路径而不是在运行时在vb中预先写入路径。净从文本框给数据库路径

进口ADOX 公共类Form1中

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 




    Try 
     Dim cat As Catalog = New Catalog() 

     cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
        "Data Source=C:\Users\Anish Choudhary\Desktop\New folder\N.mdb;" & _ 
        "Jet OLEDB:Engine Type=5") 

     MessageBox.Show("Database Created Successfully") 

     cat = Nothing 


    Catch ex As Exception 
     MessageBox.Show("Database already Exists") 
    End Try 
End Sub 

末级

回答

0

而不是使用文本框获取的文件夹路径使用由NET库提供的适当的控制。它被称为FolderBrowserDialog TextBoxes对于这种操作并不是很好。用户可以有很多的键入正确路径的问题,而不是在它的简单一的FolderBrowserDialog允许无需手动输入任何

Dim fbd = New FolderBrowserDialog() 
fbd.Description = "Select a folder for the new database" 
fbd.RootFolder = Environment.SpecialFolder.MyComputer 
fbd.ShowNewFolderButton = True 
If fbd.ShowDialog() = DialogResult.OK Then 
    Try 
     Dim filePath = Path.Combine(fbd.SelectedPath, "N.mdb") 
     Dim cat As Catalog = New Catalog() 
     cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
        "Data Source=" & filePath & _ 
        "Jet OLEDB:Engine Type=5") 
     MessageBox.Show("Database Created Successfully") 
     cat = Nothing 
    Catch ex As Exception 
     MessageBox.Show("Database already Exists") 
    End Try 
End If 
+0

sir您的代码在try语句块的第一行发出错误,未声明“'path'由于它的保护级别,它可能是可访问的。“ –

+0

Path类在System.IO命名空间中定义,则需要在包含此代码的文件中添加以下行:_Imports System.IO_ – Steve

0

您可以只指的是你的代码的文本。

假设你的代码是在表格和文本框

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
Try 
    Dim cat As Catalog = New Catalog() 
    cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
       "Data Source=" & txtFilePath & "N.mdb;" & _ 
       "Jet OLEDB:Engine Type=5") 
    MessageBox.Show("Database Created Successfully") 
    cat = Nothing 
Catch ex As Exception 
    MessageBox.Show("Database already Exists") 
End Try 
End Sub 
+0

我应该说,没有这方法的工作原理,达到正确的路径。在第一个中,您不允许更改添加自己的参数的标准事件处理程序的签名,如果txtFilePath是文本框,那么您应该使用txtFilePath.Text属性(以及mdb文件的连接)如果用户忘记键入最后一个反斜杠,则可能失败) – Steve

+0

当iam将Textbox作为参数传递,但方法2正常时,方法1不工作 –