|
|
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Помогите средствами VBA решить задачу. Нужно взять значение ячейки, и найти его в базе DBF. Если такое значение существует, то возвратить адрес этого значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:03:22 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Копать в сторону ADO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 19:18:37 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
В какую сторону копать и так понятно. Имеется таблица называется 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 Когда запускаю вышеприведенный код выдается ошибка: "Отсутствует значение для одного или нескольких параметров" Подскажите, пожалуйста, где именно я ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 13:20:30 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
возьмите Аргон в апострофы Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 13:39:25 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
точна, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 13:52:12 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Есть следующий код 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 Программа проверялась со всеми закоментированными драйверами. Проблема в том, что когда в запросе слово на кирилице программа ничего не находит, с латиницей проблем нет. Подскажите, что в данной ситуации можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 11:00:52 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
это проблемы кодовой страницы. В XP я не нашел прямо ссылку на кодовую страницу - в Администраторе источников данных ODBC есть выбор из ASCII, международной и какихто норвежских. Вероятно есть возможность добавления charset'ов, но ODBC скорее всего не располагает нужными инструментами... Если подключить через ODBC dbf-файл с неправильно указанным charset'ом, то и сортировка, и поиск могут работать некорректно. Можно канешна попробовать вариант удаления гландов через задницу 8) а именно создать БД в MS Access, присоединить таблицу DBF, проверить привильность буков и пробовать вытаскивать через Access, а не напрямую через dbf... или посмотреть, как всетаки задавать национальную кодировку при создании нового ADODB.connection я ни в справке, ни в книжках не нашел поясний... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 12:39:16 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Если файлы DBF формата FoxPro, лучше бесплатно скачать с сайта Microsoft последний VFP OLEDB Provider и работать сним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2006, 15:15:08 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
ffffffffffffffffffffffffЕсли файлы DBF формата FoxPro, лучше бесплатно скачать с сайта Microsoft последний VFP OLEDB Provider и работать сним. Установил, стали понятными половина символов, оставшаяся половина все также не читабельна. База имеет кодировку 1251, в блокноте все можно прочитать. Может есть еще какие драйверы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2006, 22:46:03 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Что значит "половина" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2006, 09:59:37 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Слово "Транспорт" он распознает примерно так "Odанспоdт" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2006, 10:38:53 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
попробуйте Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2006, 10:41:10 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
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 ............................................ Взято отсюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2006, 11:25:24 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Попробовал все способы, ничего не помогло. Методы скорей всего правильные, это база у меня кривая очень. Подскажите, пожалуйста, каким способом можно узнать, что за драйвер использует программа ACT! (build 5.0.3.423) для работы с этой базой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 10:14:19 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Nagv а сама таблица открывается нормально без крякозябров? к примеру в Visual FoxPro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 15:03:18 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
А если импортировать данные в Excel через Данные-Импорт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 17:04:13 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Открывать в foxpro базу не пробовал, т.к. оной не имею, а установить что-нибудь дополнительное на рабочую машину проблематично. Вечером попробую открыть на домашней. Открывал базу в access там были крякозебры, открывал в блокноте, там как раз-таки все нормально. Открывал и импортировал в эксель, и так и так получались крякозябры только разного вида :) Хозяева ACT! предлагают работать с их базой посредством их библиотек, собственно сейчас с ними и разбераюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 17:24:46 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Еще вариант. В тексте запроса Select CPCONVERT(1251,1250,ИмяПоля),... Первый параметр- кодовая страница в файле dbf Второй- кодовая страница на выходе. Тоже можно поэкспериментировать. Даже с разными строками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 18:06:26 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
авторПодскажите, пожалуйста, каким способом можно узнать, что за драйвер использует программа ACT! (build 5.0.3.423) для работы с этой базой. Например, программой Filemon. Стартовать свою программу и посмотреть, какие файлы открыты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 18:48:19 |
|
||
|
Поиск в базе DBF
|
|||
|---|---|---|---|
|
#18+
Проблема разрешилать после того, как в HEX редакторе 29-му байту было присвоено значение hex(57) (обозначение 1251) Более подробная информация тут: http://www.delphikingdom.com/asp/viewitem.asp?urlitem=/helloworld/dbheader.htm После этого и аксес и JEt все увидели. Всем спасибо за поддержку и участие :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 17:59:46 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33948651&tid=2184318]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 384ms |

| 0 / 0 |
