Jag försöker uppdatera ett underformulär i ett annat formulär än det jag befinner mig i. Tänk på att du måster referera till kontrollnamnet i formuläret och inte till formulärnamnet för ditt underformulär. Men nu är det ju inte en enskild kontroll jag vill uppdatera, utan det är undeformuläret (som visas som datablad) som ska uppdateras med de nya rader som jag lagt till... Underformuläret ligger i en kontroll. Kontrollen för underformulär har ofta inte samma namn som formuläret om du inte gett dem samma namn. Om du deklarerar en variabel av sammatyp som formuläret. Får du "early bindings" och därmed en listning av dess medlemmar(Egenskaper, kontroller, metoder, osv) när du skriver punkten efter variabeln.Uppdatera annat formulär
Formulär![Registrera/ändra uppdrag]![PersonalUppdrag Underformulär1].Requery
Ger felmeddelandet att objekt saknas.
/Per-ErikSv: Uppdatera annat formulär
Dessutom har du givit dina formulär dåliga namn. Du bör undvika mellanslag och tecken som inte är alfanumeriska.
Attanvända ! för att adressera en vcollection är ett arv och inget som bör tillämpas. Om du dessutom vill göra en snyggare och mer lättanvänd lösning skriver du:
<code>
Dim frmForm As Form_Formulär1
Set frmForm = Forms("Formulär1")
frmForm.Underobjekt1.Requery
</code>Sv: Uppdatera annat formulär
Med stor sannolikhet en dålig lösning, men av två lösningar jag hade var den här minst dålig.
Att namnen är under all kritik är jag medveten om och ska inte upprepas!!!
/Per-ErikSv: Uppdatera annat formulär
Öppna formuläret i designläge och markera kontrollen som underformuläret ligger i. Namnet visas sedan i egegenskapsfönstrets titelrad, under egenskapen Namn i egenskapsfönstret och e komboboxen med kontroller i verktygsfältet.
I Access 2000 och senare visas formuläret i designläge i formuläret. Det kan då var lurigt att vet om man markerat kontrollen, eller om man markerat underformuläret. Lättast att markera kontrollen är genom att använda markeringsrektangeln.