database - 如何从脚本创建 Access 数据库

标签 database ms-access scripting creation

我想从脚本创建一个 Access 数据库。理想情况下,我会喜欢类似于 SQL 脚本可用于创建 SQL 数据库的方式。

这可能吗?有什么可以利用我已有的 SQL 脚本的吗?我想创建与我的 SQL 数据库相同的数据库结构。

如果您需要我澄清任何事情,请告诉我。谢谢。

最佳答案

我最终采用了自己的解决方案。我无法让前两个中的任何一个工作得很好。我创建了两个可执行文件:一个用于创建数据库,一个用于运行脚本。

对于创建数据库的应用程序,我添加了 COM 引用“Microsoft ADO Ext. 2.8 for DDL and Security”。代码实际上非常简单:(将“test.mdb”替换为您文件的正确文件路径。)

Dim cat As ADOX.Catalog = New ADOX.Catalog()
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Jet OLEDB:Engine Type=5")

为了运行脚本,我创建了一个简单的解析器来读取和运行“Access 脚本”。这些脚本基于 SQL 脚本,因为它们提供要运行的命令列表。例如,脚本可以定义为:

--Create the table.
CREATE TABLE [Test] ([ID] Number, [Foo] Text(255))

--Add data to the table.
INSERT INTO [Test] ([ID], [Foo]) VALUES (1, 'Bar')

这是解析器的代码。 (将“test.mdb”替换为您文件的正确文件路径。)

Dim textStream = File.OpenText(scriptPath)
Dim lines As List(Of String) = New List(Of String)
While textStream.Peek() <> -1
    lines.Add(textStream.ReadLine())
End While
textStream.Close()

Dim connection As OleDb.OleDbConnection = New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb")
connection.Open()
For Each line As String In lines
    If Not String.IsNullOrEmpty(line) Then
        If Not line.StartsWith("--") Then
            Dim dbCommand = New OleDb.OleDbCommand(line, connection)
            dbCommand.ExecuteNonQuery()
        End If
    End If
Next
connection.Close()

此解决方案效果很好,而且实现起来非常简单。

关于database - 如何从脚本创建 Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3834867/

相关文章:

python - Django 多对多 "through"关系的成本

sql - 字符串作为 SQL 数据库中的主键

用于存储构建版本的 SQL 数据类型

python - 画面 : How to automate publishing dashboard to Tableau server

shell - Unix:打印文件夹中每个文件的文件名和每行超过80个字符的行号

Bash 在 awk 打印中包含字符之间的字符串

php - 将带有缩略图的图像上传到文件夹并添加到 Mysql 的路径

sql - 在同一日期或最接近的日期(之前或之后)连接两个表

ms-access - 如何使用 Visual Basic 从字符串中删除停用词?

sql - 将汇总行添加到 MS Access 查询