Jump to content
  • 0

Indentieke tabellen genereren?


Fileman

Question

Posted

Een soortgelijke vraag heb ik al eerder gesteld maar helaas nog weinig uit kunnen richten met de antwoorden. Daarom hier nogmaals.

 

Ik wil graag 2 tabellen exact gelijk hebben. Tabel 1 heeft velden artikel_nr en artikel_omsch.

In tabel 2 moeten in dezelfde velden automatisch dezelfde records aangemaakt\verwijderd worden. Beide tabellen bevinden zich in dezelfde file. Hoe doe je dit nu het best\eenvoudigst?

 

Wie helpt?

Bij voorbaat mijn dank.

 

Fileman

8 answers to this question

Recommended Posts

  • 0
Posted

Ja, dit is inderdaad dezelfde vraag, en ik ben nog even nieuwsgierig als de vorige keer: toen kwamen er toch antwoorden die je op het goede spoor zetten.

Maar eerst dit: in twaalf jaar heb ik nog nooit deze vraag gehad, dus ik vermoed dat we hier voor een analyse-fout staan. Daarom: wat is precies de (functionele) bedoeling?

  • 0
Posted

Ik heb de reacties op je oorspronkelijke post niet gelezen, maar de meest eenvoudige oplossing lijkt me toch om via het menu File 'Import > Import File...' te kiezen.

 

Je kiest dan als bronbestand het pad naar het actieve bestand, je selecteert de tabel die je wil dupliceren en als target selecteer je "New table". Klaar is kees! Of mis ik iets?

 

 

 

Jeroen

  • 0
Posted
Ik heb de reacties op je oorspronkelijke post niet gelezen, maar de meest eenvoudige oplossing lijkt me toch om via het menu File 'Import > Import File...' te kiezen.

 

Je kiest dan als bronbestand het pad naar het actieve bestand, je selecteert de tabel die je wil dupliceren en als target selecteer je "New table". Klaar is kees! Of mis ik iets?

 

 

 

Jeroen

 

Ja je mist iets. Het is natuurlijk de bedoeling dat als in tabel A een record aangemaakt wordt deze ook in tabel B staat. Desnoods door middel van een script. Zodra b.v. de layout verlaten wordt tabel B wordt ge-update. Dat volstaat ook.

 

Maar toch bedankt.

 

Fileman

 

PS

sorry voor de late reactie. Zat ff op de Bahama's.

  • 0
Posted

Wel, je opties mbt scripting zijn

 

1. 'New record' en 'Set Field' script steps een record in tabel B aanmaakt

2. 'Import' script step waarbij je eerst je nieuwe record als found set isoleert en vervolgens importeerd in tabel B

3. Als je niet 'real time' moet synchroniseren, maar slecht periodiek een replica van tabel A moet maken, is de 'Execute SQL' script step misschien een optie. Je dient wel eerst de DataDirect ODBC driver te installeren. Je maakt een DSN aan die naar je FMP database verwijst en deze gebruik je vervolgens om vanuit de database een eigen table (de oude B tabel) te verwijderen met SQL statement 'DROP TABLE '. Vervolgens script je de import zoals beschreven in mn eerste post om een replica van je brontabel te maken.

 

Om het script te triggeren maak je een knop, voer je het uit bij startup of bij het afsluiten, of als dat niet volstaat kan je een event plug-in installeren (bv gratis te downloaden hier http://www.softs4humans.com/FMPro_Plugins.html) om het bv bij het verlaten van een veld het script te triggeren.

 

Ik moet echter AVD bijtreden omdat de zin van het maken van duplicaten me enigszins ontgaat.

 

 

gr Jeroen

  • 0
Posted

Ik moet echter AVD bijtreden omdat de zin van het maken van duplicaten me enigszins ontgaat.

 

 

gr Jeroen

 

Dat begrijp ik. Het probleem gaat al even terug. Ik ben voor een kleine (bevriende) onderneming een artikelen database aan het maken. Verder moeten er ook factuurtjes gemaakt kunnen worden. Dus een database artikelen en een database facturen. Maar ik wil op de facturen layout meerdere regels plaatsen uit de artikelen database. Een relatie maken dus. Maar ergens gaat er iets mis. Als ik het artikel_id op de tweede regel aanpas veranderd de eerste ook. Dit begrijp ik omdat het om 1 relatie gaat. Samengevat wil ik dus meerdere artikelen op de factuurlatout kunnen selecteren met bijbehorende omschrijving enz. Maar ik loop constant ergens op stuk. Mijn idee nu was dus om meerdere tabellen te vullen en voor iedere factuur regel een releatie te maken naar een aparte tabel. Waarschijnlijk niet nodig en zeer omslachtig, maar ik wil eindelijk eens verder en zie even door de relationele bomen het bos niet meer. Vandaar.

 

Ik hoop dat het alemaal nog een beetje duidelijk is.

 

Groeten,

Fileman.

  • 0
Posted

Wat je wil doen is inderdaad complexer dan het lijkt:

 

Tussen artikelen en facturen bestaat nl. een veel-op-veel relatie. Dwz dat 1 factuur uiteraard meerdere lijnen kan bevatten met dus meerdere artikelen, en dat omgekeerd een artikel op meerdere facturen kan voorkomen.

 

Je moet in feite 3 bestanden maken: facturen, factuurartikelen en artikelen (de 'catalogus' van artikelen).

 

Ik denk dat je uit de bocht ging daar waar je de ID's van de artikelen wou aanpassen. In de regel wijzig je NOOIT id's. Het idee van extra tabellen creëren is ook niet pluis. Mits een juist ontwerp en de juiste relaties kan je met bovenstaande 3 tabellen doen wat je moet doen: een artikelencatalogus beheren, en op basis daarvan facturen maken.

 

In bijlage vind je een klein voorbeeldje. Ik hoop dat dat enig inzcht verschaft. Let op de 'Allow creation of related records' en de value list om per factuur artikelen toe te voegen.

 

 

Cheers,

 

 

Jeroen

Facturen.fp7

  • 0
Posted

Nu nog alleen vertellen dat die middenste tabel in de many to many relationship een speciale naam heeft: joinfile (zeker niet te verwarren met Selfjoin).

Zonder die twee technieken is vandaag geen fatsoenlijk systeem op te bouwen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...