Is er iemand die mij wil en kan helpen ?

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hallo allemaal

ik ben al een tijd aan het zoeken hoe ik in mijn database een zoek functie kan maken.
Ik kom hier niet uit.:confused:
Ik heb een kolom met 300 namenen deze zou ik graag met een zoek functie willen vinden.
Met een button of inputBox of een andere mogelijkheid.
Alles is welkom ook een tip waar ik een oplosing voor dit kan vinden.
Heb nog weinig ervaring met het programmeren en werk met visual basic 2008
Kan iemand mij hierbij behulpzaam zijn en of op weg helpen ?:o
 
Allereerst maak je een zoekfunctie in je Database, dat wordt dan iets van

SELECT naam
FROM namen
WHERE naam like '%' & [@naam] & '%'
ORDER BY naam

wat dit doet:

dit kijkt of de data die jij als @naam invult voorkomt in de lijst met namen. Als jij bv 'Ja' intikt, dan is het resultaat alle namen waar 'ja' in voorkomt (dus: JAn maar ook TarJA en Piet JAcobs)

Nu moet je nog tegen je programma zeggen dat je textbox de waarde van [@Naam] levert.

de MSDN (microsoft developers network) heeft meestal toch wel wat tips http://msdn.microsoft.com/nl-nl/library/2x7h1hfk(en-us).aspx (zoek eens op datareader)

Dit is een deel van mijn code, dat je een beetje weet waar je naar moet zoeken. Dit is wel uit de 2005 versie, dus het zal wel net wat anders zijn. Kom je er toch niet uit, let me know en dan stuur ik je m'n code wel door.

Private Sub Zoeknaam()

'Declare variables
Dim objListViewItem As ListViewItem

'Initialize a new instance of the data access base class
Using objData As New WDABase

Try

'Get all projects in a DataReader object
objData.SQL = "Zoeknaam"
objData.InitializeCommand()
objData.AddParameter("@Naam", Data.OleDb.OleDbType.LongVarChar, 255, txtZoekNaam.Text)
objData.OpenConnection()
objData.DataReader = objData.Command.ExecuteReader
 
Laatst bewerkt:
Hartelijk bedanktTannasg voor je reactie

ik ga hier even mee aan de gang om te ontdekken hoe dit werkt.
hopelijk mag ik zo af en toe nog van je kennis gebruikmaken.
zal voor mij zelf even een simpele Database maken om het proces wat beter te leren kennen.
nog maals bedankt
Old Hippy
 
Ik kan nog wat hulp gebruiken.
de zoekfunctie in de database is gelukt

maar met de rest van de code heb ik wat meer problemen.
Code:
 Private Sub TXTZoeknaam_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXTZoeknaam.TextChanged
        'Declare variables
        Dim objListViewItem As ListViewItem

        'Initialize a new instance of the data access base class
        Using ZoekData As New Database1DataSet

        End Using

        Try

        Catch ex As Exception

        End Try

        'Get all projects in a DataReader object
        objData.SQL = "Zoeknaam"
        objData.InitializeCommand()
        objData.AddParameter("@Naam", Data.OleDb.OleDbType.LongVarChar, 255, TXTZoeknaam.Text)
        objData.OpenConnection()
        objData.DataReader = objData.Command.ExecuteReader
    End Sub

ObjData is niet Declared
maar alles wat ik heb geprobeerd het lukt mij niet
 
Uhm ik denk dat de foutmelding vrij duidelijk is: de objData is niet gedeclareerd.

Code:
dim objdata as new DataReader
 
Helpt Helaas niet geeft nu
Type 'DataReade' is not defined
Mischien kan iemand een kleine lokale BD in elkaar draaien met bv twee colomen.
Met een zoek funktie op een colom
zo dat ik de struktuur wat beter begrijp?
Database is helemaal nieuw voor mij
 
Laatst bewerkt:
Dat komt omdat je inderdaad al die dingen nog niet gedefined hebt. Ik deed dat in de aangemaakte module WDABase (vandaar mijn:
'Initialize a new instance of the data access base class
Using objData As New WDABase
stukje van de code)

In VisualStudio, klik je rechts op je project en kies je 'nieuw', maar nu kies je voor een 'new class'. Dan vul je de code uit het txt bestandje in. Sla het op als 'KIESHIERHOEJEHETWILNOEMEN.vb' en roep dan in je private sub dit bestandje aan.

Private Sub Zoeknaam()

'Declare variables
Dim objListViewItem As ListViewItem

'Initialize a new instance of the data access base class
Using objData As New WDABase
 

Bijlagen

Ik begin het door tekrijgen maar objListViewItem geeft nog een Unuset local variable.

komt dit door de textbox di ik nog moet maken om te zoeken????
 
Hier volgt mijn code die ik gebruik.

Ik heb een textbox 'txtzoekleerling', wat hier instaat gebruik ik om te zoeken in m'n listview (lvwleerling). Het eerste stukje is de daadwerkelijke zoekopdracht, het 2e zegt gewoon 'zodra je iets verandert aan de textbox, moet je gaan zoeken (tenzij hij leeg is, dan moet je gewoon de hele lijst leveren, en als de query geen resultaten oplevert, dan moet de listview leeg zijn).

Hope that helps?

trouwens, een unused local variable is helemaal niet erg toch? Maar ik denk dat je niet aangeeft dat het resultaat van de query in de listview moet komen?
 

Bijlagen

Laatst bewerkt:
Hi Tannasg
ontzettend bedankt voor je geduld met mij
begin een beetje door tekrijgen waar ik aan begonnen ben!!!!

even voor jou ik heb altijd in VBA geprogrameerd en dat ging mij redelijk goed af
maar zommigge programmas leenenzichbeter in visual basic.

even voor jou
ik ben met pensioen en maak voor mijn dochter wat aplicaties.voor haar administratie
geschikt op haar web winkel artiekelvoorraad en valutaberekeningen ezv.

dus eerst wat reken programmatjes gemaak onder VB 2008 dit werkt allemaal

maar ik zie dat dit wel even wat verder gaat als mijn kennis van VB 2008
hopelijk wil je mij nog verder helpen.
er zijn nog twee probleempjes (HI)
strApp en Loadleerling zijn niet declared eveneens kan ik LVTLeerling niet plaatsen
(wat hier mee te doen)
 
Hippy!

Ik ben zelf ook begonnen met VBA (voor access) en ben nu een paar maanden met Visual Studio 2005 bezig (wederom Database applicaties), en ben zelf ook het een en ander aan het ontdekken. (en zelf ben ik ook met een kleine rekenmachine begonnen :) )

De strApp doet niets anders dan bij een foutmelding 'FOUT' boven de messagebox te plaatsen, dus dat kun je net zo goed weglaten.

LoadLeerling, zo heet mijn functie die als het formulier geladen wordt de hele lijst in de listview zet. Als er dus geen tekst in het zoekvakje staat, moet hij de hele lijst weergeven, door 'loadleerling'.

LVTleerling, of bedoel je lvwleerling?

Misschien kun je je code voor dat formulier eens in een tekstfiletje kunnen zetten en uploaden?
 
Hi Tannasg
Ik heb een Text file van het programma gemaakt.
mischien kan je hier iets mee anders hoor ik wel van je
 

Bijlagen

Laatst bewerkt:
Hallo allemaal

ik ben al een tijd aan het zoeken hoe ik in mijn database een zoek functie kan maken.
Ik kom hier niet uit.:confused:
Ik heb een kolom met 300 namenen deze zou ik graag met een zoek functie willen vinden.
Met een button of inputBox of een andere mogelijkheid.
Alles is welkom ook een tip waar ik een oplosing voor dit kan vinden.
Heb nog weinig ervaring met het programmeren en werk met visual basic 2008
Kan iemand mij hierbij behulpzaam zijn en of op weg helpen ?:o

Hoebedoel je dit?
een soort zoekfunctie zoals die van google alleen dan in jou database?
of alleen jij zelf op een webpainga, gebruik dan ctrl+f
 
Hippy,

2 opmerkingen aan de code,

1: als je zegt 'objData.AddParameter("artikelcode", Data.SqlDbType.Varchar, 50, txtZoekartikel.text) vallen me 2 dingen op.
wat je hier zegt tegen het programma. "Doe de query 'searchArtikelcode'. Daar heb ik gezegd 'artikelcode = artikelcode(die ik zelf in mijn zoekfunctie invoer). En die code die ik invul, die moet jij uit txtZoekartikel.text halen. MIJN query in sql is dan "WHERE artikelcode = @Artikelcode" en is dus mijn parameter ("@artikelcode"). Ook moeten de types precies overeenkomen (anders krijg je daar weer gezeur mee). Dus heb je in de database ook aangegeven dat het een Varchar van lengte 50 is?

2: in de Sub van txtzoekleerling_textchanged zeg je eigenlijk: als de lengte van het textboxje NIET 0 is, dan moet je de zoekquery doen. Maar jij zegt nu, "als de lengte gelijk is aan 0, DAN maak ik de inhoud van het textvakje leeg (txtzoekartikel.text="") en DAN doe ik de query, maar dan is er geen code meer waar je op zoekt...


Oplossing ?
1: kijk nog eens goed naar je database, is artikelcode een varchar van 50, en hoe ziet je query er precies uit
2: de regel txtzoekartikel.text ="" mag weg, OF als je wilt dat hij zoekt, en dan meteen het tekstvakje leeg haalt, draai dan de volgorde om. Doe eerst 'zoekartikel()' en dan 'txtzoekartikel.text ="" '.

Sorry voor de late reactie, maar kan visual studio momenteel alleen op m'n werk aan (en daar ben ik tijdens het weekend niet te vinden natuurlijk :) )

Hopelijk heb je hier weer iets aan?

en no worries, het duurde bij mij ook een eeuwigheid voor ik dit soort geintjes door begon te krijgen.

Da T
 
Hi Tannasg
Bedankt weer voor je reactie
geduld is een schone zaak maar vraag wel veel van je.

mijn query ziet er alsvolgt uit

SELECT [Artikel Code]
FROM KDBbase
WHERE ([Artikel Code] = N'% & [@Artikelcode] & %')
ORDER BY [Artikel Code]


ik ga nu je laatste gegevens in voegen en kijken of ik weer een stukje verder kom
groetje Hippy

Ps Je vraag om ruimte gelezen als ik je van dienst kan zijn graag
 
Laatst bewerkt:
Hi

'Clear previous list
lvwleerling.Items.Clear()

lvwleerling in je code Kan ik niet thuis brengen
 
lvwLeerling is gewoon de naam van mijn lijst, wat bij jou.... Artikelcode is?

Misschien probeer ik het te moeilijk, of denk ik aan heel iets anders. Ik kan je mijn programma wel eens sturen, zodat je ziet wat ik heb en of het ongeveer is hoe jij het in gedachten hebt, of dat je stiekem iets heel anders bedoelde?
 
Hi
Of ik stuurje mijn programma
maar met een werkend programma kom ik er mischien ook
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan