PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Access
Access
Débuté par DIOMANDE SORY, 13 oct. 2005 15:57 - 2 réponses
Posté le 13 octobre 2005 - 15:57
Je developpe une application en WINDEV 8 mais qui attaque une BD Access 2000.
J'ai un probleme d'incompatibilité avec le format de la date en WINDEV et en ACCESS. Ma requete a pour parametre la date. Quel Format de date dois je utiliser pour manipuler le format date d'access
Merci
Posté le 13 octobre 2005 - 19:56
Je ne suis plus très sûre, mais il me semble que le format est du genre
: "#MMJJAAAA" dans Access.
Si ça n'est pas ça et si tu n'as pas la réponse lundi, je rechercherais
dans mon code. La je file en Week end, bon dev à tous,

Céline.

DIOMANDE SORY a écrit:
Je developpe une application en WINDEV 8 mais qui attaque une BD Access 2000.
J'ai un probleme d'incompatibilité avec le format de la date en WINDEV et en ACCESS. Ma requete a pour parametre la date. Quel Format de date dois je utiliser pour manipuler le format date d'access
Merci
Posté le 14 octobre 2005 - 11:24
Bonjour,

j'avais eu le mêle problème et avais résolu la chose avec la fonction qui suit plus bas.
Ca vaut ce que ca vaut, et tout cas, mon problème était résolu dans les 2 sens (lecture et/ou écriture sur une base access)

j'espère que ca t'aidera...
Christophe


// Syntaxe :
//[ <Résultat> = ] cjDateVersChaine (<cjDate>, <cjEntrée>, <cjSortie>)
// Syntaxe: cjRes = cjDateversChaine("25.11.2004 11:30:05:555","JJ.MM.AAAA HH:NN:SS:CCC","HH:NN")
// résultat = "11:30"
// Paramètres :
// cjDate : La date de référence
// cjEntrée : Le format de date en entrée
// cjSortie : Le format de date en sortie
// Valeur de retour :
// chaîne : // Aucune

PROCEDURE cjDateVersChaine(cjDate,cjEntree,cjSortie)
cjChaineSortie est chaîne
cjJJ est chaîne
cjMM est chaîne
cjAAAA est chaîne
cjHH est chaîne
cjNN est chaîne
cjSS est chaîne
cjCCC est chaîne

cjJJPos est entier
cjMMPos est entier
cjAAAAPos est entier
cjHHPos est entier
cjNNPos est entier
cjSSPos est entier
cjCCCPos est entier

// décomposition du format d'entrée de la date et chargement des variables
//trace(cjdate)

cjJJPos = Position(cjEntree,"JJ")
cjMMPos = Position(cjEntree,"MM")
cjAAAAPos = Position(cjEntree,"AAAA")
cjHHPos = Position(cjEntree,"HH")
cjNNPos = Position(cjEntree,"NN")
cjSSPos = Position(cjEntree,"SS")
cjCCCPos= Position(cjEntree,"CC")

SI cjJJPos<> 0 ALORS cjJJ = Milieu(cjDate,cjJJPos,2)
SI cjMMPos<> 0 ALORS cjMM = Milieu(cjDate,cjMMPos,2)
SI cjAAAAPos<> 0 ALORS cjAAAA = Milieu(cjDate,cjAAAAPos,4)
SI cjHHPos<> 0 ALORS cjHH = Milieu(cjDate,cjHHPos,2)
SI cjNNPos<> 0 ALORS cjNN = Milieu(cjDate,cjNNPos,2)
SI cjSSPos<> 0 ALORS cjSS = Milieu(cjDate,cjSSPos,2)
SI cjCCCPos<> 0 ALORS cjCCC = Milieu(cjDate,cjCCCPos,4)

// Décomposition du format de sortie
cjTemp est tableau de 7 par 3 entiers

cjTemp[1,1] = Position(cjSortie,"JJ")
cjTemp[2,1] = Position(cjSortie,"MM")
cjTemp[3,1] = Position(cjSortie,"AAAA")
cjTemp[4,1] = Position(cjSortie,"HH")
cjTemp[5,1] = Position(cjSortie,"NN")
cjTemp[6,1] = Position(cjSortie,"SS")
cjTemp[7,1] = Position(cjSortie,"CC")


cjTemp[1,2] = cjJJ
cjTemp[2,2] = cjMM
cjTemp[3,2] = cjAAAA
cjTemp[4,2] = cjHH
cjTemp[5,2] = cjNN
cjTemp[6,2] = cjSS
cjTemp[7,2] = cjCCC

cjTemp[1,3] = 2
cjTemp[2,3] = 2
cjTemp[3,3] = 4
cjTemp[4,3] = 2
cjTemp[5,3] = 2
cjTemp[6,3] = 2
cjTemp[7,3] = 4


//trouver les caractères intermédiaires
cjTab est tableau de 6 chaînes
//i est un entier;j est un entier
j=1
POUR i = 1 A 6
SI cjTemp[i,1] <> 0 ALORS
cjTab[j] = Milieu(cjSortie,cjTemp[i,1]+cjTemp[i,3],1)
SI Position(cjTab[j],"J") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"M") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"A") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"H") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"N") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"S") ALORS
cjTab[j]=""
SINON SI Position(cjTab[j],"C") ALORS
cjTab[j]=""
SINON
j++
FIN


FIN
FIN



TableauTrie(cjTemp,ttCroissant,1)

//trace(cjtemp[1,1], cjtemp[2,1], cjtemp[3,1],cjtemp[4,1],cjtemp[5,1],cjtemp[6,1],cjtemp[7,1])
//trace(cjtemp[1,2], cjtemp[2,2], cjtemp[3,2],cjtemp[4,2],cjtemp[5,2],cjtemp[6,2],cjtemp[7,2])
//trace(cjtemp[1,3], cjtemp[2,3], cjtemp[3,3],cjtemp[4,3],cjtemp[5,3],cjtemp[6,3],cjtemp[7,3])
//trace(cjtab[1], cjtab[2], cjtab[3], cjtab[4], cjtab[5], cjtab[6])


// former la valeur de retour
cjChaineSortie=""
j=1
POUR i=1 A 7
SI cjTemp[i,1] <> 0 ALORS
cjChaineSortie = cjChaineSortie + NumériqueVersChaîne(cjTemp[i,2],"0"+cjTemp[i,3]+"d")
SI j<7 ALORS cjChaineSortie = cjChaineSortie + cjTab[j]
j++
FIN

FIN



RENVOYER cjChaineSortie