Open record via hyperlink in nieuw formulier

Status
Niet open voor verdere reacties.

baszer

Gebruiker
Lid geworden
3 mrt 2013
Berichten
96
Hoi,

ik heb in een datasheet een lijst. Ik kan via macros het wel voor elkaar krijgen dat ik een formulier open met de gegevens van het record.

Alleen probeer ik zoveel mogelijk VBA te gebruiken, wat me nu niet lukt. (ik heb de links gemaakt dmv "is hyperlink = yes" in het property menu)

ik heb onderstaande code
Code:
Private Sub button1_Enter()
Dim recordID As Integer
recordID = recordID = Me.ID
DoCmd.OpenForm "Form3", , , "ID = recordID"
End sub

deze code heb ik op het internet gevonden, maar de code zal niet werken omdat ik geen knop heb. Aangezien ik een lijst heb, zonder knoppen, weet ik niet goed wat ik in het begin moet zetten (achter Private Sub). Iemand een idee?
 
zie bijgevoegd plaatje, Knipsel.PNG

normaal bij een knop kan je dan
Code:
Private Sub cmdButton()
, maar hoe moet ik de Private Sub ... nu noemen? ivm met de variabele buttons (dus de hyperlinks)
 
Tip 1: vergeet hyperlinks in de properties. Gewoon met tekstvakken werken. Je kunt alles vanuit VBA regelen. Ook hyperlinks. Maar dan moet je wel met tekstwaarden werken.
Tip 2: vergeet de Gegevensweergave op formulieren. Gruwelijk lelijk (al is dat persoonlijk) maar erger nog: je kunt nauwelijks fatsoenlijk programmeren. Maak dus doorlopende formulieren.

De oplossing in een doorlopend formulier is heel simpel: je hébt namelijk maar één knop. Wat je nu nog in verwarring brengt, is dat je er veel meer ziet. Maar het is toch maar gewoon één knop. Zie je ook in je ontwerpweergave, waar maar één knop staat. De code kan dus gewoon zoiets zijn:
Code:
Private Sub button1_Click()  '(op een knop klik je tenslotte; Enter is een beetje vreemd om te gebruiken)
Dim recordID As Integer
     DoCmd.OpenForm "Form3", , "ID = " & Me.ID
End Sub

Deze regel (recordID = recordID = Me.ID) is een beetje vreemd, want die levert alleen maar TRUE of FALSE op. Dat zal niet de bedoeling zijn. Bovendien is hij niet nodig. En je WHERE conditie was, zoals je kunt zien, ook fout.
 
Laatst bewerkt:
Bedankt voor je antwoord. Korte vraag, met doorlopende formulieren bedoel je continuous form? (ik heb een Engelstalige versie van Access)
 
Dat is inderdaad de juiste vertaling :).
 
wederom bedankt voor je antwoord. Ik ben inmiddels een stuk verder.

Alleen... ik heb weer een probleempje waar ik het antwoord mbv google niet kan vinden, maar moet waarschijnlijk niet moeilijk zijn.

In het continious form heb een lijst met ID's dat eigenlijk het chipnummer moet zijn. Ik wil dus dat het ID nummer in de tabel chips wordt opgezocht en dan het chipnummer (In tekst) wordt weergegeven.

Hoe moet ik dit aanpakken met Access? Kan onder het properties niet de juiste optie vinden.
 
Kan onder het properties niet de juiste optie vinden.
Dat verbaast me niks :). Daar vind je het namelijk niet. Ik zie je probleem niet helemaal terug in je plaatje en ik snap je vraag dus ook niet helemaal. Een (doorlopend) formulier kun je baseren op een tabel of op een query. Als het ID uit dezelfde tabel komt als het Chipnr, kun je dat er natuurlijk gewoon bijzetten. Als het ID uit een gekoppelde tabel komt dan en je baseert het formulier op die tabel, dan kun je een query maken op die tabel en de tabel met chipnummers er aan hangen. Vervolgens zet je ook het chipnummer erbij. Dat kun je dan als veld toevoegen. Of, als het ID uit een keuzelijst komt, kun je een apart tekstvak maken waarbij je het chipnummer uit de keuzelijst haalt. Opties genoeg dus :).
 
en wederom bedankt! Wat dom, idd, ik moest een queary maken!
:)

-edit-

kies jij ervoor om de query ook nog op te slaan als aparte query? Of laat je deze alleen als SQL staan in de properties?
 
Laatst bewerkt:
Meestal doe ik dat niet; al hangt het er vanaf of ik in een formulier wil kunnen zoeken of niet. Als je een SQL string gebruikt op een formulier kun je niet zoeken; die optie heb je alleen bij een opgeslagen query. Verder maakt het niet zoveel uit wat je gebruikt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan