2015-12-21 67 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不工作 –