Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: import из foxpro в access - помогите! Добавлено: 25.12.02 16:56  

Автор вопроса:  Yan

Не получается импортировать 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.

а работа гориииит :(

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Vitaliy



Вопросов: 2
Ответов: 8
 Профиль | | #1 Добавлено: 25.12.02 18:59

Самый простой способ - в аксесе сделай связь с нужной таблицей(или таблицами) и простой запрос на создание таблицы аксесс (SELECT AB_01.* INTO export
FROM AB_01;) , AB_01-связанная таблица dbf, export-таблица аксес.Если не подходит опиши проблему более подробно, постараюсь помочь, т.к. сам с такими проблемами работаю

Ответить

Номер ответа: 2
Автор ответа:
 Yan



Вопросов: 2
Ответов: 5
 Профиль | | #2 Добавлено: 26.12.02 08:46

не подходит, потому что вот эту ab_01 мне надо воткнуть в акцесс программно!
чтоб связь до таблицы устанавливалась не вручную, а автоматически, по кнопке, а юзер только выбирал имя таблицы.
неужели никто не сталкивался?

 

Ответить

Номер ответа: 3
Автор ответа:
 Vitaliy



Вопросов: 2
Ответов: 8
 Профиль | | #3 Добавлено: 26.12.02 10:08

Посмотри этот пример (я могу либо слить в одну 82 таблицы dbf, либо просто импортировать одну из них, но до этого я вручную их связываю в аксесе):

Private Sub AB(z As Variant) 'Create table AB_ALL
Dim cnEn As ADODB.Connection
Dim rsEn As ADODB.Recordset
Dim x As String

x = z
Set cnEn = CurrentProject.Connection
Set rsEn = cnEn.Execute("DELETE * FROM AB_TMP")

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 )" & _
                        " 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 rsEn = Nothing
Set cnEn = Nothing

End Sub

где х- это может быть имя любой таблицы, которую я выбираю в форме...

Ответить

Номер ответа: 4
Автор ответа:
 Yan



Вопросов: 2
Ответов: 5
 Профиль | | #4 Добавлено: 26.12.02 10:40

ты их вручную связываешь, а у меня имена таблиц меняются каждый день, мне надо автоматически связь делать!

запрос SQL к связанной таблице я уже сочиню, а вот само подключение как сделать не знаю.

есть функция TransferDatabase, она использует или ISAM или ODBC для подключения, но ISAM-драйвера под foxpro нет в 2000, а через ODBC не подключается, ВОТ В ЧЕМ ПРОБЛЕМА!!!

как автоматизировать импорт или задание связи!!!

и никто похоже не знает, гуру блин...

вот попроще вопрос, как с Recordsetа заполнить таблицу, рекордсет на dbf получить удается, но оттуда не берутся memo-поля...

Ответить

Номер ответа: 5
Автор ответа:
 Vitaliy



Вопросов: 2
Ответов: 8
 Профиль | | #5 Добавлено: 26.12.02 11:21
Скинь свой дбф на мой и-мэйл, попробую у себя поковыряться, а то сложно дать дельный совет не видя самого файла, кто его знает почему у тебя поля мемо не переносятся, может ты что-то не так делаешь...Если можешь выйди на меня по аське (172279570).

Ответить

Номер ответа: 6
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #6
Добавлено: 26.12.02 12:08

В строке поключения, вместо ODBC попробуй поставить Provider=MSDASQL.1;

Ответить

Номер ответа: 7
Автор ответа:
 Yan



Вопросов: 2
Ответов: 5
 Профиль | | #7 Добавлено: 26.12.02 13:48

не помогает:

"Невозможно найти устанавливаемый ISAM"

может кто поделится ISAMом, если он есть под foxpro для access2002 ?

Ответить

Номер ответа: 8
Автор ответа:
 LIS



Вопросов: 7
Ответов: 256
 Профиль | | #8 Добавлено: 26.12.02 15:57

w1 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DSN=Visual FoxPro Tables;UID=;SourceDB="
w2 = "\Impease\FT\Dbfs\digdata.dbc;SourceType=DBC;"
w3 = "Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=No;"
refPMS = w1 + "\\NNNNNN" + w2 + w3

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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам