Forum d'entraide Acomba
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.

Rejoignez le forum, c’est rapide et facile

Forum d'entraide Acomba
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.
Forum d'entraide Acomba
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

Aller en bas
avatar
ssawchuk
Nombre de messages : 2
Date d'inscription : 11/05/2010

Écriture dans la table TransGLHeader Empty Écriture dans la table TransGLHeader

Mar 11 Mai 2010 - 15:53
Bonjour,

D'après la documentation, il est possible d'écrire dans le table TransGLHeader, par contre, peu importe ce que je fais, j'arrive toujours à une erreur. Est-ce que quelqu'un a déjà essayé de le faire et surtout à y parvenir ?

Voici la dernière erreur que j'ai eu :

Une erreur est survenue lors de l'exécution de la requête suivante : INSERT INTO TransGLHeader (JoType,JoPeriod,JoBankCP,JoBankNumber,JoTransactionNumber,JoAmount ,JoDescription,JoCurrentSession,TGNumPosts,TGCheckGLUsed) VALUES (1,1,0,0,1,0,'VENTE Liquidation EdgeLine',-1,2,0).

ERROR [ ] Erreur de ToolKit
Fonction = ReserveCardNumber
Champ = PK_BankNumber
Erreur = Valeur invalide <1997>


Merci,
Lartis
Lartis
Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
http://www.lartis.com

Écriture dans la table TransGLHeader Empty Table composées...

Jeu 13 Mai 2010 - 21:11
Bonjour,

Il n'est pas possible d'écrire directement dans cette table, il faut utiliser la séquence suivante.

-BEGIN_TRANSACTION_GL
-ajouter dans Header avec le bon nombre de ligne
-ajouter les lignes dans ...Detail
-END_TRANSACTION_GL

Code:

    Dim cnn As New ADODB.Connection
   
    ' Connection à la base de données
    cnn.ConnectionString = "DSN=...;" 'mettre le nom de votre DSN
    cnn.CursorLocation = adUseClient
    cnn.Open
       
    ' récupère la période
    Dim rstControlGlData As New ADODB.Recordset 'seulement pour CurrentPeriod
    rstControlGlData.Open "select * from ControlGL", cnn, adOpenKeyset, adLockOptimistic
    Dim NCurrentPeriod As Integer
    NCurrentPeriod = rstControlGlData!CGCurrentPeriod
    rstControlGlData.Close
   
    Dim rstCharterData As New ADODB.Recordset
    Dim rstTransGLData As New ADODB.Recordset
    Dim rstTransGLDetailData As New ADODB.Recordset
    Dim rstTransHeader As New ADODB.Recordset
 
    cnn.Execute ("BEGIN_TRANSACTION_GL")
   
    rstTransGLData.Open "select * from TransGLHeader", cnn, adOpenKeyset, adLockOptimistic
    rstTransGLData.AddNew
   
    rstTransGLData!JoType = 3 ' 3: transaction
   
    rstTransGLData!JoDate = Date
    rstTransGLData!JoDescription = "SDescription"
    rstTransGLData!JoPeriod = NCurrentPeriod
   
    'Nombre d'affectations comptables
    rstTransGLData!TGNumPosts = 2
   
    rstTransGLData.Update
   
    '***************************************************************
    'Étape 4 :  Initialisation des propriétés de chacune des
    '          affectations comptables
    '***************************************************************

    rstTransGLDetailData.Open "select * from TransGLDetail", cnn, adOpenKeyset, adLockOptimistic
   
    'Initialisation des propriétés de la première affectation comptable
    rstCharterData.Open "select * from Charter where ChNumber = " & NCompteDe#, cnn, adOpenKeyset, adLockOptimistic
    rstTransGLDetailData!PGCharterCP = rstCharterData!RecCardPos
    rstTransGLDetailData!PGDescription = rstCharterData!ChDescription '"A"
    rstTransGLDetailData!PGAmount = -NMontant#
    rstTransGLDetailData!PGCategory = rstCharterData!ChCategory '2 ' Cat_Assets
    rstTransGLDetailData!PGJournalType = 3 '1 ' JT_Check
    rstTransGLDetailData.Update
    rstCharterData.Close
   
    rstTransGLDetailData.MoveNext
   
    'Initialisation des propriétés de lan deuxième affectation comptable
    rstCharterData.Open "select * from Charter where ChNumber = " & NCompteVers#, cnn, adOpenKeyset, adLockOptimistic
    rstTransGLDetailData!PGCharterCP = rstCharterData!RecCardPos
    rstTransGLDetailData!PGDescription = rstCharterData!ChDescription '"De"
    rstTransGLDetailData!PGAmount = NMontant#
    rstTransGLDetailData!PGCategory = rstCharterData!ChCategory
    rstTransGLDetailData!PGJournalType = 3 '3: transaction
    rstTransGLDetailData.Update
    rstCharterData.Close
   
    'Fin de la transaction
    cnn.Execute ("END_TRANSACTION_GL")
   
    'fermeture des connexions ouvertes
    rstTransGLDetailData.Close
    rstTransGLData.Close
    cnn.Close

Voici un extrait du fichier d'aide Acomba, section "Tables composés" - "Opération d'écriture"
Pour effectuer des opérations d'écriture sur un ensemble de tables composées, des commandes spécifiques ont été prévues dans le pilote ODBC pour Acomba. En effet, pour ajouter ou modifier un enregistrement affectant un ensemble de tables composées, il faut d'abord exécuter la commande BEGIN, puis, après avoir inséré ou modifié les valeurs dans les différentes tables, il faut exécuter la commande END appropriée. Les commandes BEGIN, CANCEL et END du pilote ODBC pour Acomba sont les suivantes présentées à la rubrique Fonctions spécifiques du chapitre Grammaire SQL.

Par exemple, pour créer une facturation à l'aide du pilote ODBC pour Acomba, il faut d'abord exécuter la commande BEGIN_TRANSACTION_IN, ensuite insérer les données de l'en-tête de la facturation dans la table TransactionHeader puis, mettre à jour les données des différentes lignes de la facturation dans la table TransactionDetail et, enfin, exécuter la commande END_TRANSACTION_IN. De la même façon, pour modifier une facturation, il faut d'abord exécuter la commande BEGIN_TRANSACTION_IN, ensuite modifier les données voulues de l'en-tête et/ou des lignes de la facturation et, finalement, exécuter la commande END_TRANSACTION_IN.

L'exemple du fichier d'aide qui se rapproche le plus de ce que vous voulez faire, dans le fichier d'aide, c'est celui pour "Ajouter un chèque".

Le fichier d'aide est dans: C:\Fortune\SnapIn\ODBC\0C_ODBC.hlp

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
Écriture dans la table TransGLHeader Groupe-conseil-lartis-inc-acomba200
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum