Toon posts:

[Access2k] subformulier en waardes ophalen *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een kleine database. De database bevat producten met een beschrijving erbij en een verwijzing naar een foto op de hd.
De code die ik gebruik om het plaatje te laten zien is:


Private Sub Plaatje_BeforeUpdate(Cancel As Integer)
On Error Resume Next
Me![Preview].Picture = "T:\Plaatjes\" + [Forms]![frmInvoer]![Plaatje]
End Sub

Private Sub Form_Current()
On Error Resume Next
Me![Preview].Picture = "T:\Plaatjes\" + [Forms]![frmInvoer]![Plaatje]
End Sub

Dit werkt prima. Ik heb een keuzelijst met invoervak gemaakt waarin alle plaatjes staan die op de hd aanwezig zijn (deze staan allemaal in T:\Plaatjes).

Helaas is de directory waar de plaatjes in staan nogal variabel per pc en ik zie geen mogelijkheid om hiervoor een standaard directory te creeren.

Mijn idee was om een tabel te maken met allerlei settings erin zoals bv de directory waar de plaatjes in staan. Dit is dan ook waar ik tegen mijn probleem aan loop.

Ik heb de settings nu op het hoofdveld staan in een subformulier.
Dit sub formulier heet frmSettings.

Ik heb oa de volgende code geprobeerd maar ik krijg het niet aan de praat.

Private Sub Plaatje_BeforeUpdate(Cancel As Integer)
On Error Resume Next
Me![Preview].Picture = [Forms]![frmSettings]![Dir] + "\" + [Forms]![frmInvoer]![Plaatje]
End Sub

Private Sub Form_Current()
On Error Resume Next
Me![Preview].Picture = [Forms]![frmSettings]![Dir] + [Forms]![frmInvoer]![Plaatje]
End Sub

"Dir" verwijst dus naar het veld waar het pad in is opgeslagen. Dit is ook gewoon op het scherm zelf te zien.
Het formulier waar de code naar verwijst is een subformulier en ik denk zelf dat hier de oorzaak ligt van mijn probleem.

Als iemand mij op het juiste pad zou kunnen zetten of mij zou kunnen vertellen wat ik verkeerd doe dan zou ik dat zeer op prijs stellen,

TIA _/-\o_

Maikel

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Verwijderd schreef op 19 June 2003 @ 14:28:
Ik ben bezig met een kleine database. De database bevat producten met een beschrijving erbij en een verwijzing naar een foto op de hd.
De code die ik gebruik om het plaatje te laten zien is:
Je concat gaat niet helemaal goed volgens mij. Volgens mij moet dat zijn:
code:
1
2
Me![Preview].Picture =
[Forms]![frmSettings]![Dir] & "\" & [Forms]![frmInvoer]![Plaatje]
Maar pin mij er niet op vast. :)

edit:
Concat klopt wel zo, alleen in dit geval niet relevant. |:(

[ Voor 15% gewijzigd door RedRose op 19-06-2003 14:42 ]

Sundown Circus


Verwijderd

Topicstarter
thnx voor de tip
ik heb het meteen geprobeerd, maar zo werkt het helaas ook niet : )

ik heb al wel op het hoofdformulier een textbox gemaakt waarin ook de waarde van Dir gegeven kon worden (dus ik heb in de code frmSettings in frmInvoer veranderd) en dit werkt wel. Alleen als dit dus in het subveld is werkt dit niet : (

Verwijderd

Topicstarter
hmmm, kan bijna niet anders dan dat het aan het subformulier ligt.
Ik heb het beide formulieren even apart geopend (dus als twee losse schermen) en dan werkt het wel. Maar zodra ik frmSettings sluit of invoeg in frmInvoer dan werkt het niet meer.

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Verwijderd schreef op 19 June 2003 @ 14:37:
thnx voor de tip
ik heb het meteen geprobeerd, maar zo werkt het helaas ook niet : )

ik heb al wel op het hoofdformulier een textbox gemaakt waarin ook de waarde van Dir gegeven kon worden (dus ik heb in de code frmSettings in frmInvoer veranderd) en dit werkt wel. Alleen als dit dus in het subveld is werkt dit niet : (
Nee dat werkt ook niet, want het slaat in dit geval nergens op. |:( Ik denk dat de waarde van het subformulier gewoon niet bestaat en dat je het het beste kan oplossen door een query te schrijven op de settingstabel en daar de rest uit het formulier aan te plakken. Want ik lees nergens hoe de waarde in dat subformulier wordt gezet. Als er wel een waarde staat, dan hoeft dat niet te betekenen dat hij ook is gezet als [Forms]![frmSettings]![Dir] als het een subformulier is. :)

Sundown Circus


Verwijderd

Topicstarter
ik heb het anders opgelost.
ik heb een hoofdmenu staan. daar heb ik een onzichtbaar textveld gemaakt die het pad weergeeft (ja, ok hij is onzichtbaar, maar als hij zichtbaar was dan zou hij het weergeven).
Hierdoor werkt het wel... Het is misschien een beetje een brute oplossing maar wel simpel : )
TIA anyway : )

greetz

  • thomrob
  • Registratie: Maart 2001
  • Laatst online: 22-05 12:22

thomrob

allround developer


  • Bu588
  • Registratie: Maart 2000
  • Laatst online: 22-12-2025
Verwijderd schreef op 19 June 2003 @ 14:28:
code:
1
Me![Preview].Picture = [Forms]![frmSettings]![Dir] + "\" + [Forms]![frmInvoer]!End
Dit moet je vervangen door
code:
1
Me!Preview.Picture = Forms!frmSettings.subSettings.Form!Dir & "\" & Forms!frmInvoer!End

waarbij ik er even van uit ga dat je formulier zelf frmSettings heet, en het subformulier waar het invulveld Dir in staat heeft de naam subSettings.

offtopic:
Je hoeft niet te groeten onderaan een bericht, lees even de forumregels door svp

Nothing is fool-proof to a sufficiently talented fool...


Verwijderd

Het form waar je de settings in opslaan zal wel aan een tabel gekoppeld zijn. Deze tabel heeft dan een record. Je kan dan heel eenvoudig de data uit deze record ophalen met :
code:
1
2
Dim Bla
Bla = CurrentDb().OpenRecordset("Instellingen").Fields("Padnaam").Value


*tabelnaam en veldnaam zijn voorbeeld!!!

Dit geheel kan je zeer eenvoudig integreren in je code.

[ Voor 6% gewijzigd door Verwijderd op 20-06-2003 13:59 . Reden: ff wat duidelijker ]


  • Bu588
  • Registratie: Maart 2000
  • Laatst online: 22-12-2025
Of je gebruikt
code:
1
2
Dim strDir as String
strDir = Dlookup("Dir","tblSettings")

en gebruikt deze string in je formule...

[ Voor 22% gewijzigd door Bu588 op 20-06-2003 14:21 . Reden: typo ]

Nothing is fool-proof to a sufficiently talented fool...

Pagina: 1