Toon posts:

[VB6] Problemen met plaatjes in een Database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een prog in VB6 waarmee ik records uit een access 2000 database toevoeg en ophaal. Nu wil ik dat de gebruiker aan het form een foto kan toevoegen en dan per record. Ik doe dit door via een imagebox een foto te laden en dan het pad waar hij die foto vandaan haalt weg te schrijven naar de database dmv van een tekstbox. Nu is het de bedoeling dat als je door die recordset klikt dat dan in runtime de pictureproperty van die imagebox meeverandert, zodat steeds het plaatje verschijnt wat bij dat record hoort. Nu weet ik dat dat door een form_sub kan alleen heb geen idee hoe en hoe die code dan luidt. Iemand een idee?

Verwijderd

Misschien te makkelijk:

Gewoon,

im1.picture = objRs!veldnaam

In die veldnaam gewoon het pad van het plaatje zetten. Moet lukken toch zo?

Verwijderd

Op maandag 18 maart 2002 18:54 schreef voetenzalf het volgende:
im1.picture = objRs!veldnaam
Je kan het ook netter schrijven:
code:
1
imgLogo.Picture = rstKlanten.Fields("VeldNaam")

hierdoor is het veel duidelijker wat je bedoeld. Vooral die ! is IMHO zeer onduidelijk. Bovendien zijn dit pure VB notaties (nog erger zelfs: VBA) die totaal onzinnig zijn, en alleen voor de extreem luie medeprogrammeur...

Verwijderd

Topicstarter
Toch snap ik twee dingen niet: In dat "veldnaam" staat geen plaatje maar die verwijzing naar (padnaam). Werkt dat dan toch? Bovendien waar zet ik deze event procedure nou in ?? Want dat imageobject zit niet rechtstreeks gekoppeld aan de DB door middel van RecordSource.. Kan je dit iets voor me uitwerken please?

  • kaandorp
  • Registratie: November 1999
  • Laatst online: 03-09 22:36
Nee... Dat heet een scriptrequest.

Verwijderd

Topicstarter
Sorry zo bedoel ik het niet, ik bedoel, koppel je die code aan een Form procedure of aan de recordset_change() procedure of zo? Dat snap ik niet..

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Op dinsdag 19 maart 2002 09:08 schreef EdWare het volgende:
Dat snap ik niet..
daar zit je fout ;) je moet eerst weten wat je wilt en dan het gaan uitwerken. :)

maar je kan alles doen wat je wilt en je mag plaatjes met een functie schrijven, of met een module... jij bent de baas :)

en verder natuurlijk naar de mensen hier luisteren :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
Oke dat snap ik, ik wil die plaatjes dus met een eventprocedure gaan inlezen, want zoals gezegd die plaatjes zitten niet in de db er zit alleen een verwijzing naar het plaatje in de db en dat per record. Ik heb al dit gevonden:

With me
imgLogo.Picture = rstKlanten.Fields("VeldNaam")
End With

En dit zou dan in de Form_Current() Sub moeten staan alleen dit is een Sub die ik uit Access 2000 heb gehaald en VB6 kent deze Sub niet??

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 11-09 13:04

Crazy D

I think we should take a look.

Op maandag 18 maart 2002 19:20 schreef KoenM het volgende:
Je kan het ook netter schrijven:
code:
1
imgLogo.Picture = rstKlanten.Fields("VeldNaam")

hierdoor is het veel duidelijker wat je bedoeld. Vooral die ! is IMHO zeer onduidelijk. Bovendien zijn dit pure VB notaties (nog erger zelfs: VBA) die totaal onzinnig zijn, en alleen voor de extreem luie medeprogrammeur...
offtopic:
Heeft te maken met default properties
rs.Fields("veld").value
=
rs.Fields("veld")
=
rs("veld") of rs!veld

En zelf gebruik ik altijd de hidden
rs.Collect("veld")
Die is sneller dan de andere manieren...

Maar da's wel offtopic...

Exact expert nodig?


Verwijderd

Topicstarter
Ik snap er niks van. Waarom is dat nou zo ingewikkeld in VB. Ik wil gewoon een plaatje laten veranderen. Kan ik die wissel procedure niet plaatsen in de recordset_change() procedure, zou hij het dan doen?

Verwijderd

Topicstarter
kom jongens iemand moet dit toch weten, ik ben er zo lang al mee bezig en ik weet het nog niet...??

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 11-09 13:04

Crazy D

I think we should take a look.

Volgens mij kun je helemaal niet
pictureboxje.Picture = rs.Collect("picture_in_db")
doen. Staat me iets van bij dat dat met getChunk moet maar tis alweer een eeuwigheid geleden dat ik dat nodig had. Kijk even in je favoriete ado reference guide bij de GetChunk method. Ik dacht dat je daarmee de binaire data kan uitlezen uit je db, die moet je in een filetje wegschrijven, en dan kun je het plaatje laden in je picturebox (hoewel misschien dat wegschrijven niet nodig is).
Sorry ben ff errug lui :z anders had ik wel ff de help erbij gepakt.

Exact expert nodig?


Verwijderd

Topicstarter
Ik heb nu het volgende gedaan: In de procedure Recordset_WillMove() staat het volgende: Image1.Picture = Loadpicture (Text1.Text) waarbij in Text1.Text het pad staat waar het plaatje vandaan gehaalt moet worden. Maar nu komt het probleem, hij kijkt naar dit pas naar dit pad bij klikken op de recordset. Gevolg: Het plaatje loopt steeds een record achter ten opzichte van de database. Hoe maak ik dit nou zo dat hij het pad pakt wat verschijnt na klikken en niet het pad wat er stond voor klikken zodat de plaatjes weer synchroon lopen??

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

Snel 1 recordset naar voren gaan, plaatje laden, rest overslaan (niets laten zien), en dan weer terug?

Snap niet precies hoe het kan met je plaatje...

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 11-09 13:04

Crazy D

I think we should take a look.

Op woensdag 20 maart 2002 17:10 schreef EdWare het volgende:
recordset_WillMove()
Issie van plan dus, maar heeft ie nog niet gedaan.
Is er niet een HasJustChanged event? :) (kwee nie ik heb nog nooit een recordsetobject op de form gebruikt... en als je alles zelf in code uitleest en textboxjes vult en zo, weet je uiteraard precies waar je bent en wat je aan het doen bent...)

Exact expert nodig?

Pagina: 1