2015-12-21 1 views
-1

Я хочу создать новую базу данных MS Access, предоставив путь из текстового поля вместо предварительно написанного пути в Runtime в vb. неттоПредоставление пути к базе данных из текстового поля

Импорт ADOX Public Class 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 

End Class

ответ

0

Вместо того, чтобы использовать текстовое поле, чтобы получить путь к папке, используйте соответствующий элемент управления, предоставляемые библиотекой NET. Он называется FolderBrowserDialog TextBox не очень хороши для такого рода операций. Пользователь может иметь много проблем, набрав правильный путь, вместо этого 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

с кодом вашего кода дает ошибку в первой строке в блоке try, что «путь» не объявлен он может быть доступен из-за его уровня защиты ». –

+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

Метод 1 не работает, когда iam передает текстовое поле в качестве параметра, но метод 2 - это нормально –

Смежные вопросы