Koppeling tussen hoofdform en subform

Status
Niet open voor verdere reacties.

Aquiahora

Gebruiker
Lid geworden
10 mei 2007
Berichten
48
Beste mensen,

Iedere keer als ik mijn formulier opstart moet ik opnieuw een koppeling maken tussen hoofdform en subform. Anders doet mijn automatische factuurnummer veld het niet. Althans dan begint die weer bij 001. Zodra ik opnieuw gekoppeld heb, doet ie het keurig.
Moet ik ergens nog een opdracht geven??

Even op een rij:
Ik heb een hoofdform, via een knop wordt er een ander formulier geopend. In dat formulier is een subformulier (query) opgenomen, omdat ik met berekende velden werk.
Op het geopende formulier verschijnt als het goed is automatisch het laatste factuurnummer via de code (bij openen form)
(veld factuurnummer is numeriek)

Dim strHoogsteFactuurnummer As String
Dim lngvolgendnummer As Long

strHoogsteFactuurnummer = Nz(DMax("Factuurnummer", "nummeren", "Factuurnummer Like '280*'"), "")
If Len(strHoogsteFactuurnummer) > 0 Then
lngvolgendnummer = CLng(Right$(strHoogsteFactuurnummer, 3)) + 1
Else
lngvolgendnummer = 1
End If

Me.Factuurnummer = "280" & Format(CStr(lngvolgendnummer), "000")


Het subformulier is gekoppeld door hoofdvelden koppelen:Factuurnummer.
Er is een aparte tabel genaamd nummeren. Daar wordt keurig alle factuurnummers neergezet.

Dus waar ligt het aan dat bij het eerste keer openen het nummer weer bij 1 begint?

Ik hoop dat het duidelijk is zo want het zal niet makkelijk zijn een voorbeeldje bij te sluiten.

Hoop dat iemand tips heeft.
 
Er zijn helpers die een vraag met de titel "help" links laten liggen, daarom titel aangepast. Denk hier de volgende keer aan.
 
Niemand een tip voor me?


Beste mensen,

Iedere keer als ik mijn formulier opstart moet ik opnieuw een koppeling maken tussen hoofdform en subform. Anders doet mijn automatische factuurnummer veld het niet. Althans dan begint die weer bij 001. Zodra ik opnieuw gekoppeld heb, doet ie het keurig.
Moet ik ergens nog een opdracht geven??

Even op een rij:
Ik heb een hoofdform, via een knop wordt er een ander formulier geopend. In dat formulier is een subformulier (query) opgenomen, omdat ik met berekende velden werk.
Op het geopende formulier verschijnt als het goed is automatisch het laatste factuurnummer via de code (bij openen form)
(veld factuurnummer is numeriek)

Dim strHoogsteFactuurnummer As String
Dim lngvolgendnummer As Long

strHoogsteFactuurnummer = Nz(DMax("Factuurnummer", "nummeren", "Factuurnummer Like '280*'"), "")
If Len(strHoogsteFactuurnummer) > 0 Then
lngvolgendnummer = CLng(Right$(strHoogsteFactuurnummer, 3)) + 1
Else
lngvolgendnummer = 1
End If

Me.Factuurnummer = "280" & Format(CStr(lngvolgendnummer), "000")


Het subformulier is gekoppeld door hoofdvelden koppelen:Factuurnummer.
Er is een aparte tabel genaamd nummeren. Daar wordt keurig alle factuurnummers neergezet.

Dus waar ligt het aan dat bij het eerste keer openen het nummer weer bij 1 begint?

Ik hoop dat het duidelijk is zo want het zal niet makkelijk zijn een voorbeeldje bij te sluiten.

Hoop dat iemand tips heeft.
 
AUB Tip!!

Heeft niemand een idee?

AUB ben er al zo lang mee bezig. Ik kom er niet uit.

Moet toch op te lossen zijn?

Graag tips!! Bijvoorbaat dank.
 
Is dit voor jou misschien een oplossing, de oplossing staat onderaan de topic.
 
Hoi,

Bedankt voor je reactie. Ik had deze topic al eerder gezien.
IS niet helemaal mijn probleem denk ik. Alles wordt wel goed weergegeven in de subform. Het enige probleem is dat mijn automatische factuurnummer de Dmax niet uitvoerd als het form geladen wordt. Wel als ik handmatig eenmaal veranderd heb, dan pakt ie hem weer op. Totdat formulier weer gesloten wordt.

Maar goed ik zal er nog eens goed naar kijken naar deze topic. Houdt de vraag nog wel even open.
 
Beste mensen,

Ik ben er nog steeds niet uit. Ik heb mijn DB uitgekleed en stuur hem hierbij. Wil iemand eens kijken waar mijn fout zit?

Waar het om gaat is het form factureren. Daar staat een factuurnummer die automatisch moet ophogen. Hij begint steeds bij 01. na handmatig koppeling veranderen of nummer invullen doet ie het wel, zolang de database geladen blijft. Daarna weer niet.
Ik weet niet meer waar ik het zoeken moet.

Ik open eerst form facturenlijst1, dan op knop toevoegen. Opent form factureren.

Ik hoop dat iemand de oplossing heeft. Alvast bedankt:love:


Helaas ik krijg hem niet kleiner dan 117 kb



Hoi,

Bedankt voor je reactie. Ik had deze topic al eerder gezien.
IS niet helemaal mijn probleem denk ik. Alles wordt wel goed weergegeven in de subform. Het enige probleem is dat mijn automatische factuurnummer de Dmax niet uitvoerd als het form geladen wordt. Wel als ik handmatig eenmaal veranderd heb, dan pakt ie hem weer op. Totdat formulier weer gesloten wordt.

Maar goed ik zal er nog eens goed naar kijken naar deze topic. Houdt de vraag nog wel even open.
 
Laatst bewerkt:
Ben er helaas nog steeds niet uit. Weet wel dat het waarschijnlijk niet aan de koppeling ligt, al lijkt het wel zo. Zit wel ergens in mijn programma een fout, maar ik zou niet weten waar ik het moet zoeken. Hij schrijft het nieuwe nummer wel naar de tabel, maar kijkt niet naar het laatste nummer.

Mochten er nog ideeen zijn dan hoor ik het graag.
 
Post je mdb. Haal eerst alles eruit wat niet voor je probleem van toepassing is en comprimeer hem dan. Denk eraan zippen niet rarren!
 
Hallo Aquiahora,

Het eerste wat me opvalt, is dat je je formulier en subformulier probeert te koppelen met 2 Primairy Keys en dat gaat niet werken. Relaties tussen tabellen en het koppelen van formulieren, doe je door een PK (Primairy Key) te koppelen met een FK (Foreign Key).

In je debiteuren/klanten tabel zie ik dat je 2 adressen op neemt. Dus ik neem aan dat er klanten zijn met meerdere adressen. Wat ga je doen, als er klanten zijn met meer dan 2 adressen?

Volgens mij kun je deze tabel beter splitsen in een tabel klanten en daaraan gekoppeld een tabel adressen. Nu ben je niet meer gebonden aan een limiet van meerdere adressen.

Tevens neem je in je tabellen velden op, waarin in je berekeningen opslaat. Ook dat is niet gebruikelijk bij een relationele database (BTW, Kortingsbedrag, Factuurbedrag en het Totaalbedrag. Maak gebruik van berekende velden in Querys of onafhankelijke velden in Formulieren, waarin de berekeningen worden uitgevooerd.

Waarom sla je het factuurnummer op in een aparte tabel? Het factuurnummer staat toch al in de tabel factureren. De DMax functie kun je toch ook uitvoeren op het veld factuurnummer van de tabel factureren?

Bijgaand een voorbeeldje, hoe jouw tabellenstructuur er volgens mij uit zou moeten zien.

mvg
Charles
 

Bijlagen

Laatst bewerkt:
Hallo Bakk,

Bedankt voor je tabel. Ik ga er zeker mee aan de slag.
Ik denk dat ik mijn probleem inderdaad kan oplossen nu. Want het probleem met de koppeling tussen PK en Foreign Key, dat wist ik eigenlijk niet. Dus ik hoop het nu uit de wereld te hebben.

Kan het weekend weer mooi aan de slag ermee.

Ik zal deze topic nu afsluiten. Nogmaals bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan