Страница: 1 |
Не получается импортировать dbf-файл из foxpro 2.6 в access 2002. В access 97 это легко можно было сделать через ISAM-драйверы, в 2002 - foxpro в isam не входит, пытаюсь через ODBC: вручную делаю связь до файла, в свойствах смотрю строку подключения ODBC, вставляю ее как аргумент команды TransferDatabase: 'DoCmd.TransferDatabase acLink, "База данных ODBC", '"ODBC;DSN=Таблицы Visual FoxPro;UID=;SourceDB=MYPATH;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;;TABLE=NAMEMYTABLE", acTable, "NAMEMYTABLE.dbf", "destinationTABLE" в итоге получаю ошибку драйвера. помогите найти в чем трабл. пробовал сделать через ADODB - так не берутся memo-поля из dbf. а работа гориииит :(
Самый простой способ - в аксесе сделай связь с нужной таблицей(или таблицами) и простой запрос на создание таблицы аксесс (SELECT AB_01.* INTO export не подходит, потому что вот эту ab_01 мне надо воткнуть в акцесс программно! Посмотри этот пример (я могу либо слить в одну 82 таблицы dbf, либо просто импортировать одну из них, но до этого я вручную их связываю в аксесе): Private Sub AB(z As Variant) 'Create table AB_ALL x = z Set rsEn = cnEn.Execute("INSERT INTO AB_TMP ( F, I, O, N_KATEG, SKIDKA, LTARIF, LIMIT, LIMDOP, DOPLATA, NOMDOC, _FAMILY, ADRESS, LSC, ZN, UST, S_UST, GOS_POVER, KONTR, KONTR_KV, PLATA, T_KV, _DEBT, KTRANS, DATE_K, NAME, TARIF, [DATE], Tip )" & _ Set rsEn = Nothing End Sub где х- это может быть имя любой таблицы, которую я выбираю в форме... ты их вручную связываешь, а у меня имена таблиц меняются каждый день, мне надо автоматически связь делать! запрос SQL к связанной таблице я уже сочиню, а вот само подключение как сделать не знаю. есть функция TransferDatabase, она использует или ISAM или ODBC для подключения, но ISAM-драйвера под foxpro нет в 2000, а через ODBC не подключается, ВОТ В ЧЕМ ПРОБЛЕМА!!! как автоматизировать импорт или задание связи!!! и никто похоже не знает, гуру блин... вот попроще вопрос, как с Recordsetа заполнить таблицу, рекордсет на dbf получить удается, но оттуда не берутся memo-поля... В строке поключения, вместо ODBC попробуй поставить Provider=MSDASQL.1; не помогает: "Невозможно найти устанавливаемый ISAM" может кто поделится ISAMом, если он есть под foxpro для access2002 ? w1 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DSN=Visual FoxPro Tables;UID=;SourceDB=" After you can use typical SQL connection I had a project to convert Visual FoxPro to ACCESS , so I used above code to connect to FOxPro files .. For ACCESS 2000 I used DAO 2.6... If you need project -> I can send to you.... Good Luck Страница: 1 |
Вопрос: import из foxpro в access - помогите!
Добавлено: 25.12.02 16:56
Автор вопроса: Yan
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Vitaliy
Вопросов: 2
Ответов: 8
Профиль | | #1
Добавлено: 25.12.02 18:59
FROM AB_01 , AB_01-связанная таблица dbf, export-таблица аксес.Если не подходит опиши проблему более подробно, постараюсь помочь, т.к. сам с такими проблемами работаю
Номер ответа: 2
Автор ответа:
Yan
Вопросов: 2
Ответов: 5
Профиль | | #2
Добавлено: 26.12.02 08:46
чтоб связь до таблицы устанавливалась не вручную, а автоматически, по кнопке, а юзер только выбирал имя таблицы.
неужели никто не сталкивался?
Номер ответа: 3
Автор ответа:
Vitaliy
Вопросов: 2
Ответов: 8
Профиль | | #3
Добавлено: 26.12.02 10:08
Dim cnEn As ADODB.Connection
Dim rsEn As ADODB.Recordset
Dim x As String
Set cnEn = CurrentProject.Connection
Set rsEn = cnEn.Execute("DELETE * FROM AB_TMP")
" SELECT " & x & ".F, " & x & ".I, " & x & ".O, KATEGOR.N_KATEG, KATEGOR.SKIDKA, KATEGOR.LTARIF, KATEGOR.LIMIT, KATEGOR.LIMDOP, KATEGOR.DOPLATA, " & x & ".NOMDOC, " & x & ".[_FAMILY], " & x & ".ADRESS, " & x & ".LSC, " & x & ".ZN, " & x & ".UST, " & x & ".S_UST, " & x & ".GOS_POVER, " & x & ".KONTR, " & x & ".KONTR_KV, " & x & ".PLATA, Fix([" & x & "]![T_KV]) AS T_KV, " & x & ".[_DEBT], " & x & ".KTRANS, " & x & ".DATE_K, TARIFS.NAME, TARIFS.TARIF, TARIFS.DATE, Asc([TIPS]) AS Tip" & _
" FROM TARIFS RIGHT JOIN (" & x & " LEFT JOIN KATEGOR ON " & x & ".KATEGOR = KATEGOR.K_KATEG) ON TARIFS.TCODE = " & x & ".TCODE;")
Set cnEn = Nothing
Номер ответа: 4
Автор ответа:
Yan
Вопросов: 2
Ответов: 5
Профиль | | #4
Добавлено: 26.12.02 10:40
Номер ответа: 5
Автор ответа:
Vitaliy
Вопросов: 2
Ответов: 8
Профиль | | #5
Добавлено: 26.12.02 11:21
Скинь свой дбф на мой и-мэйл, попробую у себя поковыряться, а то сложно дать дельный совет не видя самого файла, кто его знает почему у тебя поля мемо не переносятся, может ты что-то не так делаешь...Если можешь выйди на меня по аське (172279570).
Номер ответа: 6
Автор ответа:
ГАТ
Вопросов: 2
Ответов: 117
Web-сайт:
Профиль | | #6
Добавлено: 26.12.02 12:08
Номер ответа: 7
Автор ответа:
Yan
Вопросов: 2
Ответов: 5
Профиль | | #7
Добавлено: 26.12.02 13:48
Номер ответа: 8
Автор ответа:
LIS
Вопросов: 7
Ответов: 256
Профиль | | #8
Добавлено: 26.12.02 15:57
w2 = "\Impease\FT\Dbfs\digdata.dbc;SourceType=DBC;"
w3 = "Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yeseleted=No;"
refPMS = w1 + "\\NNNNNN" + w2 + w3