[VB6] Zoek functie dmv SQL

Pagina: 1
Acties:

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik heb een database gemaakt met een Visual basic applicatie erbij.

Nou wil ik maken, dat ze binnen de access database kunnen zoeken doormiddel van SQL

Hoe kan ik dit het beste realiseren?

BVD

Windows Phone Apps: Belstatus, Pinautomaten


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 09:51
www.w3schools.com
code:
1
SELECT * WHERE veldnaam LIKE '%zoekterm%'

oid

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik zat aan zoiets te denken:
code:
1
SELECT * FROM Tabelnaam WHERE Tabelnaam.Veldnaam=... [AND Tabelnaam.Veldnaam=...]|[OR Tablenaam.Veldnaam=...] [SORT BY Veldnaam]

kan het hier ook mee?

Windows Phone Apps: Belstatus, Pinautomaten


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 09:51
Op donderdag 22 november 2001 09:25 schreef AdrianP het volgende:
Ik zat aan zoiets te denken:
code:
1
SELECT * FROM Tabelnaam WHERE Tabelnaam.Veldnaam=... [AND Tabelnaam.Veldnaam=...]|[OR Tablenaam.Veldnaam=...] [SORT BY Veldnaam]

kan het hier ook mee?
waarom probeer je het niet gewoon? :?

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
k heb nu dus dit, maar dat werkt niet.
code:
1
2
3
4
5
6
7
8
9
10
Dim db As Database
Dim rs As Recordset

Set db = OpenDatabase("d:\databse.mdb")
db.OpenRecordset (SQL$)

prompt$ = "Waarop wilt u zoeken?"
Zoek$ = InputBox(prompt$, Zoeken)

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE zoek$)"

Wat is er fout?
Hij zegt, dat ie de invoertabel niet kan vinden...

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

't Is wel een stukje basiskennis, maar goed...

Zoek$ = InputBox(prompt$, Zoeken)

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE zoek$)"

Er staat sowieso een ) in die daar niet hoort, maar goed.
Je probeert in de string SQL een stukje tekst te stoppen, + de inhoud van variabele Zoek. Dat gaat zo niet werken. Print (Debug.Print) SQL maar eens en je ziet wel wat ik bedoel.
Spit even in je VB kennis, en bedenk hoe je strings kan samenvoegen.
Daarnaast is het nog een stukje basiskennis sql. Je wilt zoeken op "waar veldnaam lijkt op blah". Blah moet sowieso tussen ' en ' aangezien het om een string veld gaat. En er zal nog een wildcard bij moeten, aangezien je alles wilt waar blah in voorkomt. "Normaal" is een wildcard % maar met DAO zal 't wel een * zijn (kwestie van even proberen). Dus je query zal uiteindelijk iets moeten worden als
SELECT * FROM Tabel WHERE veld LIKE '%blah%'

Die kennis even combineren met je VB kennis en dan moet je er wel uit komen lijkt me.

ps:
nee geen copy-paste antwoord anders weet je nog niet waarom het niet werkte.
Die foutmelding is vrij logisch. In je huidige query zeg je "WHERE veld like zoek$". Aangezien je zoek als tekst meegeeft, en niet de waarde van variabele zoek, zal Access op zoek gaan naar veld "veld" en veld "zoek$". Zoek$ zal geen veld zijn in je database. En tabelnaam moet uiteraard wel een geldige tabelnaam zijn.

Exact expert nodig?


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Zo, volgens mij ben jij een doorgewinterde VB specialist.
Ik kom net pas kijken hoor dus sorry voor het ongemak.

Maar hoe kan ik nou een waarde geven aan de die wildcard?
Ik wil gewoon dat %zoek% iets is, wat uit een inputbox komt....
SQL$ is dus niet goed?
hij geeft namelijk aan, dat daar de fout zit. Hij ziet SQL$ als SQL$ = ""


tabelnaam is natuurlijk aangepast in de echte versie :)

Kun je me helpen?

Windows Phone Apps: Belstatus, Pinautomaten


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 09:51
Op donderdag 22 november 2001 09:36 schreef AdrianP het volgende:
k heb nu dus dit, maar dat werkt niet.
code:
1
2
3
4
5
6
7
8
9
10
Dim db As Database
Dim rs As Recordset

Set db = OpenDatabase("d:\databse.mdb")
db.OpenRecordset (SQL$)

prompt$ = "Waarop wilt u zoeken?"
Zoek$ = InputBox(prompt$, Zoeken)

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE zoek$)"

Wat is er fout?
Hij zegt, dat ie de invoertabel niet kan vinden...
eej
je moet natuurlijk wel eerst je variabelen aanmaken voor je ze gaat gebruiken.
zo dus:
code:
1
2
3
4
5
6
7
Dim db As Database
Dim rs As Recordset
prompt$ = "Waarop wilt u zoeken?"
Zoek$ = InputBox(prompt$, Zoeken)
SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE zoek$)"
Set db = OpenDatabase("d:\databse.mdb")
db.OpenRecordset (SQL$)

Dan nog ff die ) weghalen.
en dan nog ff op msdn.microsoft.com uitzoeken hoe je variabelen in een string gebruikt.

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik heb nu dit dit geprobeerd.
code:
1
SQL$ = "SELECT * FROM Container WHERE ((Container.chipsnummer)=(zoek$))"

Nu krijg ik dat ik te weinig parameters heb :?

Windows Phone Apps: Belstatus, Pinautomaten


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 09:51
Op donderdag 22 november 2001 10:21 schreef AdrianP het volgende:
Ik heb nu dit dit geprobeerd.
code:
1
SQL$ = "SELECT * FROM Container WHERE ((Container.chipsnummer)=(zoek$))"

Nu krijg ik dat ik te weinig parameters heb :?
heb je hier al eens gekeken? :?

http://www.w3schools.com/sql/default.asp
?

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Explicit
Public DB As Database
Dim WS As Workspace
Public Sub OpenDatabase(DBase As String)
    Dim sConnect As String
    
    sConnect = ";DATABASE=" & DBase
    Set WS = DBEngine.Workspaces(0)
    Set DB = WS.OpenDatabase("", dbDriverNoPrompt, False, sConnect)
End Sub
Public Sub CloseDatabase()
    DB.Close
    WS.Close
End Sub

Public Function ExecQuery(Query As String, keuze As Integer) As Recordset
    On Error Resume Next
    Dim QueryDf As QueryDef
        
    Select Case keuze
    Case 2
      Set QueryDf = DB.CreateQueryDef("", Query)
      QueryDf.SQL = Query
      QueryDf.Execute
    Case Else
      Set QueryDf = DB.CreateQueryDef("", Query)
      QueryDf.SQL = Query
      Set ExecQuery = QueryDf.OpenRecordset
    End Select
End Function

ik heb een module ervoor geschreven omdat ik da makkelijker vind, mischien heb je er iets aan.

je andere code wordt dan een stuk makkelijker
code:
1
2
3
4
5
opendatabase("databeest.db") 'databeest opene
execquery ('select * from tabel where dit like dat',1) 'standaart query
execquery ("delete from tabel where dit like dat",2) 
'2 dus voor speciale query's zoals update en delete en insert
closedatabase

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Op donderdag 22 november 2001 10:25 schreef Tampie2000 het volgende:

[..]

heb je hier al eens gekeken? :?

http://www.w3schools.com/sql/default.asp
?
heb ik gekeken ja
Maar daar kan ik weinig relevants vinden.
Ik moet gewoon zoeken in een Access DB vanuit een waarden die de gebruiker opgeeft. En net dat laatste lukt niet, en dat is VB dus helaas heb ik niks aan die link.
Toch bedankt.

Windows Phone Apps: Belstatus, Pinautomaten


  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 09:51
Op donderdag 22 november 2001 10:31 schreef AdrianP het volgende:

[..]

heb ik gekeken ja
Maar daar kan ik weinig relevants vinden.
Ik moet gewoon zoeken in een Access DB vanuit een waarden die de gebruiker opgeeft. En net dat laatste lukt niet, en dat is VB dus helaas heb ik niks aan die link.
Toch bedankt.
SQL is overal min of meer hetzelfde, probeer het volgende eens:
code:
1
SQL$ = "SELECT * FROM blaat WHERE blaat LIKE '%" & zoekterm & "%'"

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

neem mijn module die hier boven staat en zet dit in je zoek form
code:
1
execquery("select * from tabel where dir like " & txtzoek.text",1)

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Op donderdag 22 november 2001 10:35 schreef Tampie2000 het volgende:

[..]

probeer het volgende eens:
code:
1
SQL$ = "SELECT * FROM blaat WHERE blaat LIKE '%" & zoekterm & "%'"
Nu doet ie het :)
Mag ik nog 1 ding vragen?

Ik werk dus met text velden, dus als ie iets gevonden heeft, kan ik dat niet zien.
Nu zou ik graag willen, dat als ie iets vind, dat ie dan het zoekresultaat vet weergeeft.
Hoe dat te doen?

Windows Phone Apps: Belstatus, Pinautomaten


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

dn moet je het font aanpassen voor de textbox, als je meerdere fonts in 1 textbox wilt moet je een richtextedit neeme, anders kan da nie

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Op donderdag 22 november 2001 11:25 schreef Super_ik het volgende:
dn moet je het font aanpassen voor de textbox, als je meerdere fonts in 1 textbox wilt moet je een richtextedit neeme, anders kan da nie
Ik wil geen meerdere fonts in 1 textbox, ik wil gewoon in bv text1.text wil ik als de waarde die in text1.text staat overeenkomt met de zoek string, dat text1.text dan vet gedrukt komt te staan.

Windows Phone Apps: Belstatus, Pinautomaten


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

code:
1
 text1.FontBold = True

tada bold :)

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Verwijderd

:z
code:
1
Text1.FontBold = True

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
:)
niet zo bij de hand he dames!:)

Dat snap ik ook wel
Ik wil het specifiek als de string gevonden wordt in de database...

Dus als zoek$ gevonden wordt, moet zoek$ bold worden
snaps?

Windows Phone Apps: Belstatus, Pinautomaten


Verwijderd

Je Query zou een resultset terug moeten geven. Als deze records bevat kan je je textbox bold maken.

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Enig idee hoe ik dat doe?

Windows Phone Apps: Belstatus, Pinautomaten


Verwijderd

Uit de MSDN:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Sub RecordCountX()

   Dim dbsNorthwind As Database
   Dim rstEmployees As Recordset

   Set dbsNorthwind = OpenDatabase("Northwind.mdb")

   With dbsNorthwind
    ' Open table-type Recordset and show RecordCount 
    ' property.
    Set rstEmployees = .OpenRecordset("Employees")
    Debug.Print _
       "Table-type recordset from Employees table"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount
    rstEmployees.Close

    ' Open dynaset-type Recordset and show RecordCount 
    ' property before populating the Recordset.
    Set rstEmployees = .OpenRecordset("Employees", _
       dbOpenDynaset)
    Debug.Print "Dynaset-type recordset " & _
       "from Employees table before MoveLast"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount

    ' Show the RecordCount property after populating the 
    ' Recordset.
    rstEmployees.MoveLast
    Debug.Print "Dynaset-type recordset " & _
       "from Employees table after MoveLast"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount
    rstEmployees.Close

    ' Open snapshot-type Recordset and show RecordCount 
    ' property before populating the Recordset.
    Set rstEmployees = .OpenRecordset("Employees", _
       dbOpenSnapshot)
    Debug.Print "Snapshot-type recordset " & _
       "from Employees table before MoveLast"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount

    ' Show the RecordCount property after populating the 
    ' Recordset.
    rstEmployees.MoveLast
    Debug.Print "Snapshot-type recordset " & _
       "from Employees table after MoveLast"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount
    rstEmployees.Close

    ' Open forward-only-type Recordset and show 
    ' RecordCount property before populating the 
    ' Recordset.
    Set rstEmployees = .OpenRecordset("Employees", _
       dbOpenForwardOnly)
    Debug.Print "Forward-only-type recordset " & _
       "from Employees table before MoveLast"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount

    ' Show the RecordCount property after calling the 
    ' MoveNext method.
    rstEmployees.MoveNext
    Debug.Print "Forward-only-type recordset " & _
       "from Employees table after MoveNext"
    Debug.Print "  RecordCount = " & _
       rstEmployees.RecordCount
    rstEmployees.Close

    .Close
   End With

End Sub

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

code:
1
2
3
4
Dim result As Recordset
    Set result = ExecQuery("Select * from testvoorraad where Id like " & text1.text , 1)
    Me.Caption = result!Merk
    If result!Id = Text1.Text Then Text1.FontBold = True

eventueel aan te vullen met limit 1 maar nie persee nodig
werkt prima

ik dacht wel dat het hoofdletter gevoelig was da achter ! staat

[edit]
die execquery werkt alleen in samewerking met mijn module natuurlijk :D maar het geeft wel een id hoe je het moet oplosse

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik zal eens gaan kijken
In ieder geval bedankt allemaal... :)

Windows Phone Apps: Belstatus, Pinautomaten


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Het wil helaas niet lukken ;(

ik heb nu nog steeds dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Command5_Click()

Dim db As Database
Dim rs As Recordset

Set db = OpenDatabase("d:\database.mdb")

SQL$ = "SELECT * FROM Container WHERE Container.chipsnummer LIKE '%" & zoek$ & "%'"

db.OpenRecordset (SQL$)

prompt$ = "Waarop wilt u zoeken?"
zoek$ = InputBox(prompt$, "Zoeken")

Ik weet echt niet hoe ik het dan vet gedrukt krijg. :?
Heeft iemand misschien een idee hoe ik laten zien, dat SQL iets gevonden heeft...?

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Je vind wel wat, alleen is het probleem het vet maken als er iets gevonden is? Of vind ie misschien toch stiekum niks?

Ik ben altijd van mening: zorg eerst dat de code zelf goed werkt, opleukdingetjes als een fontje bold maken is van latere zorg (dat is nl. iets wat je ook volledig los kan testen. Textbox, commandbutton, en in het click event van de button de text bold proberen te maken).

PS1 Wen jezelf eraan om controls nuttigen namen te geven. Bv cmdZoek i.p.v. Command5

PS2 Eerst open je de database, en daarna bouw je de SQL query? of tast de honger (_mijn_ honger :P) mijn ogen aan? :)
hehe oh nee, eerst bouw je de query, en dan vraag je waar er op gezocht moet worden :)

Exact expert nodig?


Verwijderd

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE zoek$)"
Moet zijn:

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE " & zoek$

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 16-09 23:21

mulder

ik spuug op het trottoir

Je hebt staan db.OpenRecordset. Is het niet Set rs = db.OpenRecordset(...). Vervolgens kun je kijken of er iets in je recordset zit door:
code:
1
2
3
4
5
6
7
8
9
10
11
12
  Set db = OpenDatabase("d:\database.mdb")

  SQL$ = "SELECT * FROM Container WHERE Container.chipsnummer LIKE '%" & zoek$ & "%'"

  Set rs = db.OpenRecordset(SQL$)
  if rs.EOF then
    Msgbox "Geen records gevonden!", vbInformation
  else
    rs.MoveLast
    rs.MoveFirst
    Msgbox "Er zijn " & rs.RecordCount & " gevonden.", vbInformation
  end if

F1 helpt ook trouwens...

oogjes open, snaveltjes dicht


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Op donderdag 22 november 2001 13:51 schreef Sepans het volgende:

[..]

Moet zijn:

SQL$ = "SELECT * FROM Tabelnaam WHERE tabelnaam.veldnaam LIKE " & zoek$
Als je nix nuttigs te melden heb, meldt dan nix!
Dit is pas 20 posts geleden geconstateerd!!

CrazyD, hoe kan ik dat testen?
Als ik deze SQL opdracht start, krijg ik nergens te zien of het lukt, en daarom wil ik dus bold gebruiken.
code:
1
2
SQL$ = "SELECT * FROM Container WHERE Container.chipsnummer LIKE '%" & zoek$ & "%'"
db.OpenRecordset (SQL$)

als ik eerst de recordset defineer, en dan pas de string defineer, krijg ik een foutmelding :?

Maar weet je misschien code hoe ik het beter kan doen?
Alvast bedankt!

Windows Phone Apps: Belstatus, Pinautomaten


Verwijderd

Zie ook eerdere posts.
gebruik zoiets al dit
code:
1
2
3
4
dim rs as recordset
..
set rs = db.OpenRecordset(SQL$)
..

Vervolgens kan je met het recordset-object kijken of je iets hebt terug gekregen

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Zie je favoriete refernce voor precieze functies van de recordset (ik ken DAO niet, ik gebruik altijd ADO).
Maar je recordset zal ongetwijfeld een EOF property hebben (End of File) waarmee je kan controleren of je recordset EOF is (duh :P). Eof is dus geen gegevens gevonden.

Exact expert nodig?


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Heb ik gedaan.
Maar hoe kan ik dan zien of ie daadwerkelijk iets vind

(ja ik weet het, ik vraag veel van jullie :) )

Windows Phone Apps: Belstatus, Pinautomaten


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

Op donderdag 22 november 2001 11:53 schreef Super_ik het volgende:
code:
1
2
3
4
Dim result As Recordset
    Set result = ExecQuery("Select * from testvoorraad where Id like " & text1.text , 1)
    Me.Caption = result!Merk
    If result!Id = Text1.Text Then Text1.FontBold = True

eventueel aan te vullen met limit 1 maar nie persee nodig
werkt prima

ik dacht wel dat het hoofdletter gevoelig was da achter ! staat

[edit]
die execquery werkt alleen in samewerking met mijn module natuurlijk :D maar het geeft wel een id hoe je het moet oplosse
ik blijf het nie herhale :z

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ja, jij werkt me een of ander vaag ding...
dat schiet niet op.
Weet je de oplossing voor dit probleem, met DAO?

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Op donderdag 22 november 2001 14:41 schreef AdrianP het volgende:
Heb ik gedaan.
Maar hoe kan ik dan zien of ie daadwerkelijk iets vind
Zie mijn post iets eerder. EOF property dus.

Exact expert nodig?


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 10:34

Super_ik

haklust!

is mn module geen DAO dan :?
je kunt toch wel ff kijke wat er in de module staat en dat gebruike, das een algemene manier om sql op acces los te late hoor

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik heb een beetje liggen klote met rs.EOF maar wil niet lukken

En jouw manier wil ook niet lukken.
Ik weet het niet meer..... ;(

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Eigenlijk zou ik moeten verwijzen naar een tutorial maar ik heb geen zin om iets anders dan g-pijltje naar beneden-enter te doen :P

EOF gebruik je als in
' open database
If rs.EOF Then
' niks gevonden
Else
' wel wat gevonden
End If

Exact expert nodig?


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Bedankt. :)
Maar dat heb ik dus gebruikt

Maar mocht ie iets vinden, kan ik in principe het nog steeds gaan zoeken waar het staat. Of is daar ook iets voor?

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Op donderdag 22 november 2001 18:14 schreef AdrianP het volgende:
Maar mocht ie iets vinden, kan ik in principe het nog steeds gaan zoeken waar het staat. Of is daar ook iets voor?
Hmm je bedoelt, waar het de zoekstring staat in de gezochte string? Zie VB help voor de InStr (en andere string) functie(s).
Je query zal alleen die records teruggeven waarbij de zoekstring voorkomt in het zoekveld. Beetje duh antwoord, als ie nog steeds alle records in de db terug zou geven, zou heel de query zinloos zijn :)
Als je op meerdere velden zoekt, zul je wel even zelf (met oa InStr dus) moeten kijken in welk veld (of velden) de zoekstring voorkomt.

Exact expert nodig?


  • Piels
  • Registratie: Maart 2001
  • Laatst online: 11-09 09:53
Ik maak dus geen gebruik van een Flexgrid of zo he, als ik dat zou gebruiken, dan zou het wel werken...

Ik maak alleen maar gebruik van text1.text om het zo maar te zeggen. Daarom wil ik dat de search um dik gedrukt maakt.

Maar volgens jouw kan ik beter, als ik die zoekopdracht doe, een nieuw venster openen met de zoekresultaten..?

Windows Phone Apps: Belstatus, Pinautomaten


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Op vrijdag 23 november 2001 08:49 schreef AdrianP het volgende:
Ik maak alleen maar gebruik van text1.text om het zo maar te zeggen. Daarom wil ik dat de search um dik gedrukt maakt.

Maar volgens jouw kan ik beter, als ik die zoekopdracht doe, een nieuw venster openen met de zoekresultaten..?
:?
Het maakt op zich niet uit hoe en waar je resultaten wil tonen, maar wat ik bedoel, is dat dat van latere zorg is.
Debug.print is best handig, begin maar eens met de query te fixen ed. en dat je door de gevonden records kan loopen (Do While Not rs.EOF... rs.MoveNext...), definitief tonen in je programma is gewoon van latere zorg, dat is "maar" de GUI (zeker niet onbelangrijk, maar in 1e instantie wel).
Al denk ik dat alleen text1 bold maken of niet als er iets gevonden is (of niet..) misschien niet al te duidelijk is, maar dat kan ik niet bepalen voor je :)
(noem het beesthje trouwens geen Text1 maar iets zinnigs, txtZoek of zo... dan is het over een paar maanden, of als iemand in je code kijkt, wat duidelijker over welk textboxje het gaat en wat het doet... maar da's een beetje offtopic).
Dus vergeet gewoon ff de interface, en doe gewoon in code controlleren, kijken of je records vind ed., als dat goed gaat kun je op je gemakje er een UI omheen bouwen, maar dan werkt de zoekfunctie gewoon, en hoef je daar niet meer over na te denken.

Een nieuw venster zou trouwens wel handig kunnen zijn, als je daarna "iets" met dat zoekresultaat wilt gaan doen. Je zoekopdracht kan meerdere records vinden, met een gewoon textboxje kun je in principe maar 1 ding kwijt. Als je dus meerdere records vind, kan het best handig zijn om een windootje te tonen met de gevonden records, waaruit de gebruiker dan het juiste record wat ie zocht kan kiezen.

Exact expert nodig?

Pagina: 1