Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : créer un reporting excel à partir d'un recordset ADO [ Base de données / Access ] (RENU974)

mercredi 27 août 2008 à 13:33:39 | créer un reporting excel à partir d'un recordset ADO

RENU974

bonjour,

je ne sais pas comment formaliser ce projet que je vous décrit ci dessous:

je souhaite réaliser un tableau excel qui récapitule le résultat d'un recordset d'une base access:

1/le nombre d'enregistrement étant supérieur à 1 million de lignes je ne peux utiliser une fonction copy to excel, il me faut trouver un autre moyen
2/ donc j'utilise un recorset obtenu depuis ma base de donnée access.ceci n'est pas un problème.
ce que je ne sais pas faire c'est organiser mon recordset en disant dans VB excel:

lorsque je parcours le recordset:
si le champs TOTO du recordset = 0 alors je met le nombre de ligne correspondantes dans la cellule A1.

je sais faire des boucles sur excel mais faire une boucle sur un recordset eh bien je bloque.
si des personnes arrivent à me trouver un exemple d'application de reporting ou on transfere les données d'un recordset sur une feuille excel en disposant les champs comme je le souhaite je vous remercie d'avance.



mercredi 27 août 2008 à 13:49:59 | Re : créer un reporting excel à partir d'un recordset ADO

youpiyoyo

SAlut,

tu as essayer DoCmd.TransferSpreadsheet... je suis pas sur qu'il supporte 1M de lignes sachant que excel ne peux en contenir que 65536.
sinon pour boucler dans un recordset tu peux faire:
    With rst
        .MoveFirst
        Do Until .EOF
        loop
   end with

rst etant ton recordset. tu as d'autres moyens de faire mais c'est une solution, tu peux faire un while ou un for combiné également avec 65536, a toi de voir et d'adapter.
j'ai pas trop compris cette question:
"lorsque je parcours le recordset:
si le champs TOTO du recordset = 0 alors je met le nombre de ligne correspondantes dans la cellule A1.
"

de ce que je comprends: tu veux mettre le nombre d'enreigstrement null ou vide dans ta cellule A1 d'excel, c'est ca?
Si c'est le cas pour tu ne fais une requete sql avec count et comme critère IS NULL or "". et tu l'execute avec executenonquery (si tu codes en vb ou c#.net).

Sinon pour ton reporting de access tu peux utilser crystal report.
@+
youpi :)

mercredi 27 août 2008 à 14:52:42 | Re : créer un reporting excel à partir d'un recordset ADO

RENU974

bonjour, merci pour ta réponse.

compte tenu du nombre d'enregistrement le transfert spreadsheet ne marchera pas. c'est pour cela que je passe par access, car seul access peut supporter un grand nombre de lignes.

ensuite tu n'a pas compris car j'ai mal expliqué:

si le champs TOTO du recordset est égal à une valeur cad 0 ou 1 par exemple. alors je met dans la cellule A1 le nombre d'enregistrement pour les quelle la condition sur ce chazmps est remplie.


en simple: j'ai combien d'enregistrements qui correspondent au champs TOTO=0

mercredi 27 août 2008 à 15:20:57 | Re : créer un reporting excel à partir d'un recordset ADO

youpiyoyo

Réponse acceptée !
tu en bosses en vb.net non?
pourquoi tu utilises ado? plutot que d'utiliser des recordset utilises des dataset ce qui est plus complet sur .net.

Sinon ma réponse est également bonne pour ton TOTO=0 ou 1. tu as plusieurs possibilités, soit tu construis une requete sql avec un count dedans avec les crières 0 ou1 et tu utilises un reader, soit si tu utilises des bindingsources tu utilises filter, soit si tu utilises un dataset ou datatable tu utilises select("TOTO=0), sinon tu utilises des boucles.
si tu restes en ado avec access voici un exemple:
Dim sqlcmd as string ="SELECT Count([tatable].[TOTO]) AS [CountOfTOTO] FROM [tatable] HAVING (((Count([tatable].[TOTO]))=0))"
rst = dbCC.OpenRecordset(sqlcmd, dbOpenSnapshot)
dim Fcount as integer
If rst.RecordCount <> 0
 
Fcount =rst.fields("CountOfTOTO")
End If
rst.close
si en .net
Dim connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=taDatabase.mdb;"
Dim connection As New OleDb.OleDbConnection(connectionString)
Dim sqlcmd as string ="SELECT Count([tatable].[TOTO]) AS [CountOfTOTO] FROM [tatable] HAVING (((Count([tatable].[TOTO]))=0))"
Dim Createcmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(sqlcmd , connection)
dim myreader As OleDb.OleDbDataReader
dim Fcount as int16
try
myreader = Createcmd.ExecuteReader()
            While myreader.Read()
                count = myreader(0)
            End While
            connection.Close()
catch ex As Exception
MsgBox(ex.Message)
end try


c'est un exemple tu as plein de façon de faire a toi de choisir la meilleur en fonction de ton projet.
@+
youpi :)

jeudi 28 août 2008 à 07:50:44 | Re : créer un reporting excel à partir d'un recordset ADO

RENU974

salut, vbnet je ne connais pas .

 

merci pour ton exemple ado je vais passer comme ca.

le rpoblème des boucles c'est qu'il faut que je crée une variable de comptage pour chaque critère et dans mon cas c'est assez lourd (environ 20 critères donc 20 variables)

dans tous les cas tu m'as donné l'occasion de regarder de plus près VB.net.

j'en profite pour poser une autre question:

je n'arrive pas à me connecter à une table oracle depuis VB :

en fait dans access , nous pouvons créer un lien vers une table, celle ci étant volumineuse, le lien est mieux que d'importer la table entière.
dans access , cette liaison se manifeste par un rond vert-bleu.

n'arrivant pas à me connecter à ce lien , en fait je fais une requête  création de table sur ce lien avec mes critères puis je me connecte en vb sur le résultat de cette requête pour sortir le reporting.
connais tu le code VB pour se connecter directement à ce lien de table et créer un recordset directement ?

merci pour ton aide.


lundi 1 septembre 2008 à 15:25:57 | Re : créer un reporting excel à partir d'un recordset ADO

youpiyoyo

tu es dans la section VB.NET et VB 2005c'est pour cela que je pensais que tu étais en .net.
oracle je ne connais pas désolé, regarde dans le designer de connection de visual.
pour ton histoire de lien, si ta table est volumineuse fait une requete sql en select (aide toi de access si tu as besoin) avec tes critères et importe le résultat dans une table de ton dataset.
Si tu n'es pas en .net je pourrais difficilement t'expliquer en vb6 sachant que je n'est jamais codé avec ce language, uniquement vba autre que .net. sinon utilises la première méthode ado que je t'ai donné.

@+
youpi :)



Cette discussion est classé dans : créer, recordset, partir, excel, reporting


Répondre à ce message

Sujets en rapport avec ce message

créer excécutable à partir de macro [ par frippons ] Bonjour à tousJe rencontre actuellement quelques soucis.J'ai effectué un ensemble de macro sous excel afin de faire la maquette d'un programme. Je sou Créer un graphique Excel à partir de VB [ par Silvia ] Je travaille actuellement en VB6, et voudrais transférer des données sous forme de graphique sur Excel ? créer une liste imprimable à partir d'une sélection [ par baz36 ] Bonjour, je débute dans ce domaine et avant de m'investir, je souhaiterais savoir si mon problème est réalisable.Les données du pb :j'ai un catalogue créer un graphique sur Excel à partir de VB6 [ par DD05 ] Bonjour,Depuis VB6, je copie deux colonnes de chiffres sur Excel.La première colonne reprend les abscisses et la deuxième les ordonnées.Ensuite je tap Créer une macro à partir d'une macro [ par SupraDolph ] Bonjour, Je génére à partir d'une macro excel un autre document excel. Seulement dans ce dernier, le zoom des graphiques et incorrecte ce qui ne les Créer une base de donnée dans excel et la mettre gratuitement sur le web [ par LaManouche ] Bonjour,Je souhaiterais créer une base de données simple dans excel et la mettre gratuitement sur le web.Est-ce possible en sachant que je connais pas ouverture de excel à partir de access [ par WrestlingMan ] Bonjour à tous ! J'ai entrepris dans le cadre d'un stage de réaliser un simple bouton dans un formulaire sous access qui me permette d'ouvrir à l'écr Générer un tableau synthétique à partir de plusieurs feuilles excel [ par nichboul ] Bonjour à tous,J'ai créé un pti outil sur excel pour la gestion des stocks avec un menu, des feuilles récapitulatives et mes feuilles de stocks. Mon p simplifier la visualisation des inf en utilisant access à partir de tableau excel [ par ferchakha ] bonjour tt le monde!!je suis en stage et je me confronte à une grosse difficulté (n'étant pas trés doué en access), je suis amené à crée un formulaire Créer une fonction VB sous excel s'executant après une sauvegarde du classeur [ par kata ] Bonjour à toutsJe cherche à réaliser une fonction type "Aftersave". c'est à dire de déclencher le lancement de la fonction après un enregistrement de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.