Excel 2010 VBA中基于文本文件的数据库

时间:2018-09-27 10:39:49

标签: sql excel database vba

我正在尝试建立一个仅使用文本文件作为表数据源的数据库。这似乎是唯一的选择,因为我无法在公司PC上安装任何其他软件。我尝试使用各种连接字符串来初始化数据库(请参见下面的代码)。

我有两个问题:首先,如果我设法与strConnectionString2连接,则存在错误,即小数点分隔符(逗号)与文本定界符(逗号)匹配。由于PC受了严格的保护,因此不能更改注册表中的任何内容。

第二个问题:如果我使用ConnectionString3,则会收到错误消息“数据源名称太长”。当我尝试使用较短的数据源时,它表示找不到数据源。系统是64位Windows 7

任何帮助将不胜感激。也可以采用其他方法,但是它们不能涉及安装任何其他软件和更改目录中的任何内容。在Excel中更改小数点分隔符也不是一种选择,因为它会使其他工作流程崩溃。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: test
provisioner: kubernetes.io/cinder
parameters:
  availability: nova
************

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: claim1-volume
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: test

1 个答案:

答案 0 :(得分:1)

我知道VBA快要死了,没人会发现它有用,但这是解决方案。

  1. 要使用的驱动程序。 我使用的驱动程序是Microsoft Text ODBC驱动程序。然后,它创建了一个数据库,其数据存储仅为文本文件。

它声明如下:

Dim strDatabaseDirectory As String
Dim strConnectionString1 As String
Dim strConnectionString2 As String
Dim strConnectionString3 As String
Dim dbMurenaDatabase As ADODB.Connection
Dim rcsRecords As ADODB.Recordset

strDatabaseDirectory1 = ThisWorkbook.path & "\database\"
strConnectionString1 = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" &    strDatabaseDirectory1 & ";" & _
                        "Extensions=asc,csv,tab,txt;"

现在,您已经初始化了数据库,但尚未设置表的参数。如果您的十进制分隔符和数据库定界符相同,则可能导致冲突。解决方案非常简单:您必须在.ini文件中设置所有参数(只需创建一个文本文件并更改扩展名)。如何执行此操作的示例如下: https://www.connectionstrings.com/microsoft-text-odbc-driver/info-and-download/

在那里设置了定界符和字段属性。 VBA的CREATE TABLE对我不起作用,因为在那里您无法指定定界符。因此,您创建了所有文本文件(表)、. ini文件,并且一切正常。