powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск в базе DBF
20 сообщений из 20, страница 1 из 1
Поиск в базе DBF
    #33913722
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите средствами VBA решить задачу.

Нужно взять значение ячейки, и найти его в базе DBF.
Если такое значение существует, то возвратить адрес этого значения.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33914248
архивариус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копать в сторону ADO
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33924598
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какую сторону копать и так понятно.

Имеется таблица называется PE
есть столбец USR1002 в котором лежит нужная информация
и столбец Name в котором осуществляется поиск по значению

Нужно найти значение в Name, и получить соответствующее значение из столбца USR1002


Sub ConnectDBF()
Dim strSQL As String
Dim db As ADODB.Connection
Dim rs As String
Set db = New ADODB.Connection
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\actbase\;Extended Properties=dBASE IV"

Let strSQL = " SELECT USR1002 " _
& " FROM PE " _
& " WHERE Name = Арагон"

db.Execute (strSQL)
db.Close
End Sub


Когда запускаю вышеприведенный код выдается ошибка:
"Отсутствует значение для одного или нескольких параметров"

Подскажите, пожалуйста, где именно я ошибся.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33924703
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возьмите Аргон в апострофы
Код: plaintext
1.
2.
3.
Let strSQL = " SELECT USR1002 " _
& " FROM PE " _
& " WHERE Name = 'Арагон'"
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33924778
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точна, спасибо :)
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33939446
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть следующий код


Sub ConnectDBF()
Workbooks("Auto.xls").Worksheets("OpOtM").Activate

Dim strSQL As String
Dim sOutput As String
Dim Zapros As String
Dim db As ADODB.Connection
Dim Rs As ADODB.Recordset

Let Zapros = Cells(92, 3).Value
Let strSQL = " SELECT usr1002,usr1040, usr1034" _
& " FROM PE " _
& " WHERE company LIKE " & "'" & "%" & Zapros & "%" & "'"

Set db = New ADODB.Connection
'db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\actbase\;Extended Properties=dBASE IV"
'db.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=D:\actbase\;CollatingSequence=ansi"
db.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=D:\actbase\"

Set Rs = New ADODB.Recordset
Rs.Open Source:=strSQL, ActiveConnection:=db
If Not (Rs.BOF Or Rs.EOF) Then
Let sOutput = Rs.Fields("USR1002").Value & ", " & Rs.Fields("USR1040").Value & ", " _
& Rs.Fields("USR1034").Value
Else
Let sOutput = 0
End If

Rs.Close
db.Close
MsgBox (sOutput)
Set db = Nothing
Set Rs = Nothing
End Sub


Программа проверялась со всеми закоментированными драйверами.
Проблема в том, что когда в запросе слово на кирилице программа ничего не находит, с латиницей проблем нет. Подскажите, что в данной ситуации можно сделать.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33939860
mg@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mg@
Гость
это проблемы кодовой страницы. В XP я не нашел прямо ссылку на кодовую страницу - в Администраторе источников данных ODBC есть выбор из ASCII, международной и какихто норвежских. Вероятно есть возможность добавления charset'ов, но ODBC скорее всего не располагает нужными инструментами...

Если подключить через ODBC dbf-файл с неправильно указанным charset'ом, то и сортировка, и поиск могут работать некорректно.

Можно канешна попробовать вариант удаления гландов через задницу 8) а именно создать БД в MS Access, присоединить таблицу DBF, проверить привильность буков и пробовать вытаскивать через Access, а не напрямую через dbf...

или посмотреть, как всетаки задавать национальную кодировку при создании нового ADODB.connection

я ни в справке, ни в книжках не нашел поясний...
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33940544
Если файлы DBF формата FoxPro, лучше бесплатно скачать с сайта Microsoft последний VFP OLEDB Provider и работать сним.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33945642
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ffffffffffffffffffffffffЕсли файлы DBF формата FoxPro, лучше бесплатно скачать с сайта Microsoft последний VFP OLEDB Provider и работать сним.

Установил, стали понятными половина символов, оставшаяся половина все также не читабельна. База имеет кодировку 1251, в блокноте все можно прочитать. Может есть еще какие драйверы?
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33945979
Что значит "половина" ?
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33946106
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слово "Транспорт" он распознает примерно так "Odанспоdт"
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33946116
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте

Код: plaintext
Provider=MSDASQL;DRIVER={Microsoft FoxPro VFP Driver (*.dbf)};SourceDB=D:\ 5 ;SourceType=DBF;codepage=OEM;deleted=no
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33946241
OLEDB
"Provider=vfpoledb.1;Data Source=C:\MyDataDirectory\;Collating Sequence=russian"
..............................
Поэкспериментируй с Collating Sequence
.........................................
ODBC
"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:\myvfpdbfolder;Exclusive=No;Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO"
................................
Поэкспериментируй с Collate
............................................
Взято отсюда
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33948651
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал все способы, ничего не помогло. Методы скорей всего правильные, это база у меня кривая очень.

Подскажите, пожалуйста, каким способом можно узнать, что за драйвер использует программа ACT! (build 5.0.3.423) для работы с этой базой.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33949877
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nagv а сама таблица открывается нормально без крякозябров?
к примеру в Visual FoxPro
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33950425
А если импортировать данные в Excel через Данные-Импорт...
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33950504
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открывать в foxpro базу не пробовал, т.к. оной не имею, а установить что-нибудь дополнительное на рабочую машину проблематично. Вечером попробую открыть на домашней.
Открывал базу в access там были крякозебры, открывал в блокноте, там как раз-таки все нормально.
Открывал и импортировал в эксель, и так и так получались крякозябры только разного вида :)
Хозяева ACT! предлагают работать с их базой посредством их библиотек, собственно сейчас с ними и разбераюсь.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33950666
Еще вариант. В тексте запроса
Select CPCONVERT(1251,1250,ИмяПоля),...
Первый параметр- кодовая страница в файле dbf
Второй- кодовая страница на выходе.
Тоже можно поэкспериментировать. Даже с разными строками.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33950769
авторПодскажите, пожалуйста, каким способом можно узнать, что за драйвер использует программа ACT! (build 5.0.3.423) для работы с этой базой.
Например, программой Filemon. Стартовать свою программу и посмотреть, какие файлы открыты.
...
Рейтинг: 0 / 0
Поиск в базе DBF
    #33972051
Nagv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема разрешилать после того, как в HEX редакторе 29-му байту было присвоено значение hex(57) (обозначение 1251)
Более подробная информация тут:
http://www.delphikingdom.com/asp/viewitem.asp?urlitem=/helloworld/dbheader.htm

После этого и аксес и JEt все увидели. Всем спасибо за поддержку и участие :)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Поиск в базе DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]