Таблица Excel в MS Access 2+ Таблица Проблема - PullRequest
0 голосов
/ 24 мая 2019

Для ниндзя VBA там. Я столкнулся с проблемой, которая заняла некоторое время, чтобы выяснить, где проблема была вчера.

Теперь, как это исправить?

Вот код, который отлично работает при следующих условиях: ~ ТОЛЬКО ОДИН СТОЛ НА МАШИНЕ ~

Вот код от (я использовал имя таблицы Excel, назначенное для Data2) Использование Excel VBA для экспорта данных в таблицу MS Access

Public Sub DoTrans()

  Set cn = CreateObject("ADODB.Connection")
  dbPath = Application.ActiveWorkbook.Path & "\FDData.mdb"
  dbWb = Application.ActiveWorkbook.FullName
  dbWs = Application.ActiveSheet.Name
  scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
  dsh = "[" & Application.ActiveSheet.Name & "$]" & "Data2"  'Data2 is a named range
  cn.Open scn

  ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) "
  ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh

  cn.Execute ssql

End Sub

Таким образом, я использовал эту заглушку, передавая имя таблицы Access, таблицу Excel, имена полей и имя рабочего листа. Он будет работать только для листа с одной таблицей (именованный диапазон).

Как только я добавляю в таблицу вторую таблицу (именованный диапазон), этот метод больше не работает. Он выдаст ошибку с помощью On Error, но код продолжит работу, без On Error ничего не произойдет.

Мне потребовалось некоторое время, чтобы найти, где код ломается, но это все, две таблицы с разными именами, и это больше не будет работать.

Должен ли я преобразовать таблицу в фактический диапазон и явно указывать Worksheet.Range (адрес или имя) каждый раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...