Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Etablir une connexion avec une base de données Access +Dimensions hierarchiques

Bonjour tout le monde,

je travaille avec Qlik dans le cadre de mon stage et j'ai besoin de votre aide.J'ai deux questions qui sont comme suit :

1) je voudrais établir une connexion avec une base de données Access mais ça marche pas. En effet, en essayant de créer une connexion OLDB , je sélectionne MS Access Database mais la connexion n'est pas établie et le message suivant s'affiche : you do not have access to the data source.

2) dans un de mes graphes , je possède 2 dimensions hiérarchiques : Mois->Week et Machines->Parc

Selon les dimensions choisies par l'utilisateur , je veux afficher les valeurs différentes.J'ai utilisé une formule  mais elle ne marche pas malheureusement.En effet , quand je sélectionne un mois donné , j'ai des valeurs bizarres dans chaque semaine qui ne correspondent pas aux valeurs réelles.

La formule utilisée est comme suit :

If( Count(distinct Mois)=1 and Count(Week)>1,

( If(Count ( distinct Parc)=1 and Count(Machine)>1,Aggr(A,Machines),Aggr(Sum(Aggr(A,Machines)),Parc)),

( If(Count ( distinct Parc)=1 and Count(Machine)>1,Aggr(Avg(Aggr(A,Machines),Month)),Aggr(Avg(Aggr(Avg(Aggr(A,Machines)),Parc)),Month)))


Merci d'avance

5 Replies
flochi75
Creator III
Creator III

Bonjour Aabir,

1) Je n'y connais pas grand chose à Access, mais j'ai l'impression qu'il y a un pb d'identifiant et mot de passe pour y accéder...

2) Pour la formule, il manque je pense les réponses attendues après chaque if, sinon, il faut à la place des ",", lui sire si les suivante se cumule ("and") ou se remplace ("or")...

if(###, 'A',  si condition 1 est vraie, alors 'A',

     if(#####, 'B', si condition 2 est vraie, alors 'B',

          'C')) sinon 'C'

Florent

Not applicable
Author

Merci Florent pour ta réponse.

1) J'ai pu établir la connexion avec la base de données.cependant je peux pas utiliser de requêtes sol.ça me renvoie des messages d'erreur.

2) La formule me renvoie des valeurs fausses.

Pour ma dimension hiérarchique Parc->machines, je voudrais que pour chaque Parc ( composé de plusieurs machines ) avoir la moyenne pondérée des valeurs relatives aux machines qui les composent.

J'ai utilisé la formule suivante :

If(Count(Parc)>1 and Count(distinct machine)=1,

       Sum(Saturation)*100, Sum(Saturation*Total_Time)*100/ Sum(Total_Time))

Mais je n'obtiens pas les valeurs voulues.

je pense que le problème vient de la deuxième partie du if.

flochi75
Creator III
Creator III

tu dis là :

si j'ai plus de 1 Parc et 1 seule

machine,

     alors somme la Saturation et * 100,

          sinon, somme (Saturation*Total_Time)*100/Somme(Total_Time)

C'est ça ?

si c'est une expr : il faut faire :

     sum(if(Count(Parc)>1 and Count(distinct machine)=1,Saturation*100,

          (Saturation*Total_Time*100)/ Sum(Total_Time))

mais qu'est-ce que Total_Time ? une seule Valeur ?

si non, ça ne peut pas marcher avant la division, si oui, alors les 2 Total_Time sannulent non ?

essaie :

  sum(if(Count(Parc)>1 and Count(distinct machine)=1,Saturation*100,

          (Saturation*100)/ Sum(Total_Time))


Florent

Not applicable
Author

Pour une machine donnée c'est :A= Sum(Saturation)*100

Pour un parc ( composé de plusieurs machines ) : la somme des A des machines qui composent ce parc pondérée par Total_Time ( tu peux le considérer comme le nombre des machines du parc).

Quand j'utilise cette formule :

Sum(if(Count(Parc)>1 and Count(distinct machine)=1,Saturation*100,

          (Saturation*Total_Time*100)/ Sum(Total_Time))

J'ai des valeurs exactes pour les machines mais des valeurs fausses pour les Parc c'est à dire que la somme pondérée est fausse.

Je ne sais pas si le problème vient de la formule utilisée ou de la condition utilisée.

t_moutault
Contributor III
Contributor III

Bonjour Aabir,

concernant la connexion à la base de données il faut forcer la version 32bits

OLEDB CONNECT32 TO