Autonummering overbrengen

Status
Niet open voor verdere reacties.
Mailen doen we op het forum niet aan. Problemen en de bijbehorende oplossingen zijn meestal ook interessant voor mensen die meelezen. Ook ben ik niet de enige die een antwoord op een vraag heeft.
Met de lege database bedoel ik dat er helemaal niets in de mdb zat. Een lege tabel vind ik niet zo erg.
 
Bartuls zei:
Mailen doen we op het forum niet aan. Problemen en de bijbehorende oplossingen zijn meestal ook interessant voor mensen die meelezen. Ook ben ik niet de enige die een antwoord op een vraag heeft.
Met de lege database bedoel ik dat er helemaal niets in de mdb zat. Een lege tabel vind ik niet zo erg.

Bertuls,

Ik heb nu een enkele tabel uit de backend gekopieerd en twee formulieren uit de frontend.
Een enkele keer krijg je toch een foutmelding omdat bijvoorbeeld de tabellen GESLACHT en LAND ontbreken.
Maar het gaat me eigenlijk om het lidnummer.
Wil je nog een poging wagen Bartuls?
Bij voorbaat dank,
Henk
 
h.drenth zei:
Bertuls,

Ik heb nu een enkele tabel uit de backend gekopieerd en twee formulieren uit de frontend.
Een enkele keer krijg je toch een foutmelding omdat bijvoorbeeld de tabellen GESLACHT en LAND ontbreken.
Maar het gaat me eigenlijk om het lidnummer.
Wil je nog een poging wagen Bartuls?
Bij voorbaat dank,
Henk

Oeps bestanden vergeten.
Buij deze.
 

Bijlagen

  • stamgegevens.zip
    55,1 KB · Weergaven: 23
  • db1.zip
    9,5 KB · Weergaven: 22
Henk,

Ik wil er best naar kijken, maar je stuurt hebt één zip bestand met een mdb met alleen een link naar een tabel (in plaats van de tabel) en één zip bestand met een leeg mdb bestand bijgesloten. Daar valt niets in te zien.
Of kan ik het gewoon niet vinden? Ziet iemand anders wel iets? Kan natuurlijk ook aan mij liggen.......:confused:
 
Bartuls zei:
Henk,

Ik wil er best naar kijken, maar je stuurt hebt één zip bestand met een mdb met alleen een link naar een tabel (in plaats van de tabel) en één zip bestand met een leeg mdb bestand bijgesloten. Daar valt niets in te zien.
Of kan ik het gewoon niet vinden? Ziet iemand anders wel iets? Kan natuurlijk ook aan mij liggen.......:confused:

Bartuls,
Ik begrijp het niet goed.
Volgens mij heb ik twee bestanden verzonden.
Een tabel STAMGEGEVENS (backend) en een frontend bestaande uit de tabel en twee formulieren.
Als dat niet juist is, of onvoldoende, laat het me dan nog even weten. Of geef a.u.b. even aan wat ik precies moet sturen.
Groet,
Henk
 
Henk,

Maak een nieuwe mdb aan.
IMPORTEER daarin de tabellen die nodig zijn (die moet je dus importeren uit de database waarin de tabellen staan, niet uit de database waarin je koppelingen hebt gezet naar die tabellen).
IMPORTEER vervolgens de benodigde queries, forms etc. uit de mdb waarin deze staan.
Zip de nieuwe mdb en post deze.

De mdb's die je tot nog toe gepost hebt bevatte LINKS naar tabellen, geen tabellen of ze waren leeg. Daar kan niemand wat mee.

Kijk ook nog even naar mijn antwoord gisteren 11:34. Misschien is dat al het antwoord op jou vraag.
 
Bartuls zei:
Henk,

Maak een nieuwe mdb aan.
IMPORTEER daarin de tabellen die nodig zijn (die moet je dus importeren uit de database waarin de tabellen staan, niet uit de database waarin je koppelingen hebt gezet naar die tabellen).
IMPORTEER vervolgens de benodigde queries, forms etc. uit de mdb waarin deze staan.
Zip de nieuwe mdb en post deze.

De mdb's die je tot nog toe gepost hebt bevatte LINKS naar tabellen, geen tabellen of ze waren leeg. Daar kan niemand wat mee.

Kijk ook nog even naar mijn antwoord gisteren 11:34. Misschien is dat al het antwoord op jou vraag.

Bartuls,
Je bent, gelukkig voor mij, een geduldig mens.
Ik heb weer een poging gedaan om je van de nodige gegevens te voorzien.
Bijgaand een bestand genaamd db1.
Ik hoop dat het voldoende is om er mee aan de slag te gaan.
 

Bijlagen

  • db1.zip
    59,2 KB · Weergaven: 19
Henk,

Je hebt bij alle componenten in je mdb het attribuut 'verborgen' aangevinkt, dan zie je ze niet meteen. pffffffffff, kostte even voordat ik dat in de gaten had.

Allereerst je datamodel.
In principe zou je elke tabel moeten voorzien van een betekenisloze sleutel. Dat zal je in de toekomst een hoop ellende besparen.
In access is een betekenisloze sleutel meestal een veld van het type autonummer. Ik noem ze meestal simpelweg ID. Dat veld is ook per definitie de primaire sleutel van je tabel! Dat veld gebruik je om relaties te leggen naar andere tabellen.

Voorbeeld: In jou tabel Stamgegevens heb je keurig een veld LidID (autonummer) opgenomen. Alleen is dat veld niet de primaire sleutel, dat is niet handig!
Vervolgens gebruik je het veld Lidnr om om een relatie te leggen naar boekingen.
NIET DOEN! Gebruik hiervoor het veld LidID!

Kijk eens naar de volgende thread:
http://www.helpmij.nl/forum/showthread.php?t=247839
daarin heb ik het een en ander uitgelegd over het normaliseren van je datamodel en daarin staan ook goede voorbeelden hoe je relaties tussen tabellen moet leggen.

Zolang het veld Lidnr de primaire sleutel is kun je het NOOIT automatisch laten vullen op basis van het lidid.
Het veld lidID wordt namelijk pas gevuld bij het opslaan van het record in de database. Het veld Lidnr MOET gevuld zijn bij het opslaan van het record in de database omdat het de primaire sleutel is. En dan heb je het klassieke kip en ei verhaal (toepasselijk, het is bijna pasen).
Je zult dus je datamodel dusdanig moeten aanpassen dat er wel een werkbare situatie ontstaat.
 
Bartuls zei:
Henk,

Je hebt bij alle componenten in je mdb het attribuut 'verborgen' aangevinkt, dan zie je ze niet meteen. pffffffffff, kostte even voordat ik dat in de gaten had.

Allereerst je datamodel.
In principe zou je elke tabel moeten voorzien van een betekenisloze sleutel. Dat zal je in de toekomst een hoop ellende besparen.
In access is een betekenisloze sleutel meestal een veld van het type autonummer. Ik noem ze meestal simpelweg ID. Dat veld is ook per definitie de primaire sleutel van je tabel! Dat veld gebruik je om relaties te leggen naar andere tabellen.

Voorbeeld: In jou tabel Stamgegevens heb je keurig een veld LidID (autonummer) opgenomen. Alleen is dat veld niet de primaire sleutel, dat is niet handig!
Vervolgens gebruik je het veld Lidnr om om een relatie te leggen naar boekingen.
NIET DOEN! Gebruik hiervoor het veld LidID!

Kijk eens naar de volgende thread:
http://www.helpmij.nl/forum/showthread.php?t=247839
daarin heb ik het een en ander uitgelegd over het normaliseren van je datamodel en daarin staan ook goede voorbeelden hoe je relaties tussen tabellen moet leggen.

Zolang het veld Lidnr de primaire sleutel is kun je het NOOIT automatisch laten vullen op basis van het lidid.
Het veld lidID wordt namelijk pas gevuld bij het opslaan van het record in de database. Het veld Lidnr MOET gevuld zijn bij het opslaan van het record in de database omdat het de primaire sleutel is. En dan heb je het klassieke kip en ei verhaal (toepasselijk, het is bijna pasen).
Je zult dus je datamodel dusdanig moeten aanpassen dat er wel een werkbare situatie ontstaat.

Bartuls,
Dank voor je advies.
Ik ga de draad volgen.
Toch nog een vraag.
Ik zal het LIDID als sleutel hanteren.
Maar in de code's wordt steeds verwezen naar het tekstveld Lidnr.
Ik kom daar dus mee in de knoei, denk ik.
Of kan ik het veld Lidnr wel blijven gebruiken?
Dank voor je ondersteuning,
Henk
 
Het Lidnr komt in principe alleen in de tabel stamgegevens te staan. Als je het nodig hebt op een rapport of ergens anders dan link je de tabel stamgegevens in een query bij en heb je het lidnr tot je beschikking.
Ook selecties op Lidnr doe je op die manier. Je maakt bijvoorbeeld een listbox waarin je LidID en Lidnr hebt staan, maakt vervolgens de kolom LidID 0cm breed (dan zie je hem niet meer). Vervolgens als je een Lidnr selecteert geeft de combobox het LidID als resultaat terug. Met dit LidID kun je dan in je overige tabellen aan de slag.
Voordeel van deze werkwijze is dat als het Lidnr moet wijzigen dat dat zonder problemen kan. Het zit dan alleen in de tabel Stamgegevens, als je het daar wijzigt dan wijzigt het automatisch op alle rapporten en formulieren mee omdat het dan maar op één plek vast ligt.
Dat is één van de voornaamste redenen dat je tabellen ALTIJD een BETEKENISLOZE sleutel moet geven (een veld van het type autonummer dus).
 
Bartuls zei:
Het Lidnr komt in principe alleen in de tabel stamgegevens te staan. Als je het nodig hebt op een rapport of ergens anders dan link je de tabel stamgegevens in een query bij en heb je het lidnr tot je beschikking.
Ook selecties op Lidnr doe je op die manier. Je maakt bijvoorbeeld een listbox waarin je LidID en Lidnr hebt staan, maakt vervolgens de kolom LidID 0cm breed (dan zie je hem niet meer). Vervolgens als je een Lidnr selecteert geeft de combobox het LidID als resultaat terug. Met dit LidID kun je dan in je overige tabellen aan de slag.
Voordeel van deze werkwijze is dat als het Lidnr moet wijzigen dat dat zonder problemen kan. Het zit dan alleen in de tabel Stamgegevens, als je het daar wijzigt dan wijzigt het automatisch op alle rapporten en formulieren mee omdat het dan maar op één plek vast ligt.
Dat is één van de voornaamste redenen dat je tabellen ALTIJD een BETEKENISLOZE sleutel moet geven (een veld van het type autonummer dus).

Bartuls,
Ik heb de velden en relaties aangepast. Alleen in de tabel STAMGEGEVENS heb ik de velden LIDID en Lidnr. In twee gekoppelde velden (MUTATIE en BOEKINGEN) staat alleen het veld LIDID.

Toch begrijp ik niet wat je bedoelt met:
"Als je het nodig hebt op een rapport of ergens anders dan link je de tabel stamgegevens in een query bij en heb je het lidnr tot je beschikking.
Hoe ziet die querie er uit?
Ook selecties op Lidnr doe je op die manier. Je maakt bijvoorbeeld een listbox waarin je LidID en Lidnr hebt staan, maakt vervolgens de kolom LidID 0cm breed (dan zie je hem niet meer). Vervolgens als je een Lidnr selecteert geeft de combobox het LidID als resultaat terug. Met dit LidID kun je dan in je overige tabellen aan de slag.."

Ik begrijp namelijk nog steeds niet hoe ik het Lidnr hetzelfde kan krijgen als het LIDID.
Het LIDID begint met 1, maar de notatie heb ik deze ingesteld op \1000.

Ik hoop niet dat het vervelend wordt, maar ik weet niet beter.
Henk
 
h.drenth zei:
Bartuls,
Ik heb de velden en relaties aangepast. Alleen in de tabel STAMGEGEVENS heb ik de velden LIDID en Lidnr. In twee gekoppelde velden (MUTATIE en BOEKINGEN) staat alleen het veld LIDID.

Toch begrijp ik niet wat je bedoelt met:
"Als je het nodig hebt op een rapport of ergens anders dan link je de tabel stamgegevens in een query bij en heb je het lidnr tot je beschikking.
Hoe ziet die querie er uit?
Ook selecties op Lidnr doe je op die manier. Je maakt bijvoorbeeld een listbox waarin je LidID en Lidnr hebt staan, maakt vervolgens de kolom LidID 0cm breed (dan zie je hem niet meer). Vervolgens als je een Lidnr selecteert geeft de combobox het LidID als resultaat terug. Met dit LidID kun je dan in je overige tabellen aan de slag.."

Ik begrijp namelijk nog steeds niet hoe ik het Lidnr hetzelfde kan krijgen als het LIDID.
Het LIDID begint met 1, maar de notatie heb ik deze ingesteld op \1000.

Ik hoop niet dat het vervelend wordt, maar ik weet niet beter.
Henk

Bartuls,
Het is me inmiddels gelukt om de lidnummering van LIDID met een querie over te brengen naar Lidnr.
In de regel "Wijzigen in" heb ik getypt [lidid]+"1000"
Nu moet ik de querie voor de formulieren, denk ik toevoegen aan de gekoppelde tabellen.
Henk
 
h.drenth zei:
Bartuls,
Het is me inmiddels gelukt om de lidnummering van LIDID met een querie over te brengen naar Lidnr.
In de regel "Wijzigen in" heb ik getypt [lidid]+"1000"
Nu moet ik de querie voor de formulieren, denk ik toevoegen aan de gekoppelde tabellen.
Henk

Bartuls,
Nog een korte test gedaan, maar het lijkt allemaal te werken!
Komt ook omdat ik niet weet wat een listbox en combobox is. Weet ik trouwens nog niet, maar dat zoek ik t.z.t. wel op.
Heel erg bedankt voor je eindeloze geduld!
Henk
 
h.drenth zei:
Bartuls,
Nog een korte test gedaan, maar het lijkt allemaal te werken!
Komt ook omdat ik niet weet wat een listbox en combobox is. Weet ik trouwens nog niet, maar dat zoek ik t.z.t. wel op.
Heel erg bedankt voor je eindeloze geduld!
Henk

Bartuls,
Alweer een reactie van me. We zijn er erg dicht bij. Ik ben er ook constant mee bezig.
Alleen in het formulier genaamd NIEUW LID gaat niet alles zoals ik graag wil. Ik wil graag dat het lidnr automatisch wordt ingevuld. Dat gebeurt nu (nog) niet.
In het formulier heb ik Na bijwerken de volgende code ingevuld:
Private Sub LIDNR_AfterUpdate()
Dim strSQL As String
strSQL = "UPDATE stamgegevens (Lidnr) VALUES("
strSQL = strSQL & CStr(DMax("LIDID", "qrylidnr")) & ");"
End Sub
Helaas werkt dat niet.
Wat doe ik dan nog verkeerd?
Henk
 
h.drenth zei:
Bartuls,
Alweer een reactie van me. We zijn er erg dicht bij. Ik ben er ook constant mee bezig.
Alleen in het formulier genaamd NIEUW LID gaat niet alles zoals ik graag wil. Ik wil graag dat het lidnr automatisch wordt ingevuld. Dat gebeurt nu (nog) niet.
In het formulier heb ik Na bijwerken de volgende code ingevuld:
Private Sub LIDNR_AfterUpdate()
Dim strSQL As String
strSQL = "UPDATE stamgegevens (Lidnr) VALUES("
strSQL = strSQL & CStr(DMax("LIDID", "qrylidnr")) & ");"
End Sub
Helaas werkt dat niet.
Wat doe ik dan nog verkeerd?
Henk

Bartuls en natuurlijk ook de andere forumleden,
Ik heb nog flink lopen speuren naar een oplossing voor het onderwerp.
Hoewel ik al een stuk verder ben, is nog niet alles gelukt.
In het formulier "Nieuw LId" wordt het lidnummer nog niet overgenomen, terwijl ik wel naar de querie verwijs.
Bijgaand de tabel, queries en formulier.
Kan iemand mij over de laatste hobbel heen helpen?
Groet,
Henk
 

Bijlagen

  • db2.zip
    50 KB · Weergaven: 17
Beste forumleden,
Jammer dat mijn probleem niet in dit forum werd opgelost.
Ik ben er nu uit.
Dank voor de genomen moeite.
Henk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan