2009-12-31 2 views
1

J'essaie de copier des valeurs de champs dans une base de données en double. Un enregistrement à la fois. Ceci est utilisé pour l'historique et donc je peux supprimer certains enregistrements dans la base de données d'origine pour le garder rapidement.Comment automatiser (partiellement) le transfert d'une structure de base de données FileMaker et du contenu d'un champ vers une deuxième base de données?

Je ne veux pas enregistrer manuellement les valeurs dans une variable car il y a des centaines de champs. Donc, je veux aller au premier champ, enregistrer le nom du champ et la valeur, puis aller à l'autre base de données et enregistrer les données. Ensuite, lancez un 'Aller au champ suivant' et parcourez tous les champs.

Cela fonctionne parfaitement, mais voici le problème: Lorsqu'un champ est un calcul, vous ne pouvez pas l'onglet en elle et donc « Aller au champ suivant » ne fonctionne pas. Ça le saute.

Je pensais de faire un « aller à l'objet », mais je dois nommer tous les objets et je ne peux pas trouver un script à des objets de nom.

Quelqu'un peut-il penser à une solution?

Merci!

+0

Incroyable. Assurez-vous simplement que la personne qui maintient cette solution FM n'est pas un psychopathe violent et/ou sait où vous vivez. Utilisez un Export-> Importer comme détaillé par DisplacedAussie, s'il vous plaît :) –

Répondre

3

C'est l'un de ces problèmes où j'ai toujours trouvé plus facile de faire une exportation/importation.

Export toutes les données que vous souhaitez à partir d'une base de données, puis l'importer dans l'autre base de données. Tout ce que vous devez faire est:

  • spécifier manuellement les champs que vous souhaitez copier
  • sur la carte les données de l'exportation vers les champs à droite dans la nouvelle base de données/tableau

Vous pouvez même écrire un script pour faire ces choses pour vous.

+0

Je pense que votre droit. C'est la seule solution que je peux proposer aussi. Merci! – Pfeffer

0

fonction de FileMaker FieldNames(), ainsi que GetField() peut vous donner une liste de noms de champs, puis leurs valeurs

1

Il y a plusieurs façons d'y parvenir.

Pour faire un « fichier historique », je l'ai trouvé il y a plusieurs cas là-bas, donc permet de jeter un coup d'oeil. Fichier unique Je veux juste "conserver" un très gros fichier avec des données historiques, car j'ai besoin d'effacer toutes les données de mon fichier principal.

Dans ce cas, vous devez créer une table « clone » (dans le même minerai de fichier dans un autre fichier, est le même). Changez ensuite n'importe quel champ de calcul en type de résultat de calcul (nombre, texte, date, etc.). Supprimez toute "saisie automatique de valeur ou de calcul à partir de n'importe quel champ, comme le numéro automatique, la date de création automatique, etc.) Vous aurez une" table normale "sans calculs ou données saisies automatiquement

Ensuite, ajoutez un champ à Si vous avez laissé un numéro de facture (unique) pour chaque enregistrement, vous pouvez le faire pour accomplir cette tâche, mais si vous n'avez pas de champ unique qui identifie l'enregistrement comme unique, alors vous devez en créer un. Pour créer un tel champ, je recommande d'ajouter un nouveau champ sur la table clone et de le définir comme un calcul entré aunto et de faire une combinaison de champs qui est unique ... quelque chose comme ceci: invoiceNumber & "- "& lineNumber &" - "" & date.

Sur la table clone, assurez-vous que la validation est configurée pour "always", et qu'aucune valeur vide n'est autorisée et que cette valeur est unique. Une fois que vous avez configuré la table clone ..., vous pouvez importer vos enregistrements, en vous assurant que l'option auto enty est activée. Vous pouvez le faire autant de fois que vous le souhaitez, de nouveaux enregistrements seront ajoutés et pas de doublons.

Si vous le souhaitez, vous pouvez créer un script pour déplacer vers la table historique tous les enregistrements en cours avant de les supprimer.

REMARQUE: Cette technique fonctionne correctement lorsque les données que vous essayez de conserver n'ont pas de modifications dans le temps. Cela signifie que, une fois l'enregistrement créé, il n'y a aucun changement. CAS DEUX Un tableau historique doit être créé mais certains champs sont mis à jour.

Au début je pense à une donnée historique, ne change jamais. Dans certains cas, j'ai trouvé que ce n'est pas le cas, comme le cas je veux suivre les factures historiques mais en même temps, garder une trace si elles sont payées ou non ...

Dans ce cas, vous pouvez utiliser la même technique ci-dessus, mais au lieu d'importer des données ... vous devez mettre à jour les données en fonction des champs "uniques" qui identifient l'enregistrement.

Espérons que cette technique aide

Questions connexes