access & sql въпрос

2 отговора 136 прегледа
#1

access & sql въпрос

Привет,

от ВБ чета, пиша и т.н в аксес база данни. Въпроса не е много за тоя клуб, но поради липса на по-подходящ все пак питам:
Как да претърся за нещо (стринг) всички полета в дадена таблица, без да ги изреждам едно по едно в заявката за търсене?

10х

Отговор
в отговор на microsoft #2

Re: access & sql въпрос

Ок, но си пропуснал да кажеш какъв изходен резултат искаш да се получи. Ще опитам да ти напиша нещо като логика за търсене по полетата, и ако намери някъде нещо - да извежда в листбокс името на полето в което е намерено. Аналогично ти можеш да си го направиш да ползва дадени данни от реда. Всъщност примера ти го пиша с DAO, но в общи линии е същото (предполагам). Ако не е - ще се намери кой да подскаже още малко... ;о)

Идеята е такава, че полетата в таблица са с индекс. Т.е. ти можеш да се "обръщаш" към дадено поле в реда по неговия номер, а не по име... Оттук следва, че можеш да пуснеш цикъл от 0 до dbKas.Fields.Count - 1, и да проверяваш по критерии в полето дали има такава данна, каквато ти трябва. Респективно, можеш да направиш и поленца по някаква форма, които също да са индексирани, и да служат като потребителски филтър за търсене в базата. И така:

Private Sub Form_Load()


Dim dbWS As DAO.Workspace
Dim dbDB As DAO.Database
Dim dbTB As DAO.Recordset

Set dbES = DAO.Workspaces(0)
Set dbDB = DAO.OpenDatabase("c:\osp\Service.mdb")
Set dbTB = dbDB.OpenRecordset("Aparati", dbOpenDynaset)

strSearch = "122"
For intCount = 0 To dbTB.Fields.Count - 1
If InStr(dbTB.Fields(intCount), strSearch) <> 0 Then
List1.AddItem dbTB.Fields(intCount).Name
End If
Next intCount

End Sub


Получения резултат е - в лист-бокса се получава списък на полетата, в които се съдържа стринга "122". Можеш да промениш малко нещата, че да търси не по част от стринга, а да сравнява целия стринг, но това са само козметични промени, които са с различен синтаксис, и не касаят въпроса за достъп до базата.

Пробвай. Или сподели още нещо за програмата, за да ни насочиш какво точно искаш да постигнеш.


Щирлиц
Отговор
в отговор на Щиpлиц #3

Re: access &amp; sql въпрос

благодаря ти, сега ще го пробвам.
Опитах с нещо подобно но не се получаваше.

10х

Отговор