begin process at 2012 02 17 08:07:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

Access

 > 

créer un reporting excel à partir d'un recordset ADO


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

créer un reporting excel à partir d'un recordset ADO

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ée dans : créer, recordset, partir, excel, reporting


Répondre à ce message

Sujets en rapport avec ce message

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 [Déplacé .Net --> VBA] Créer L'envoi d'un mail à partir d'excel [ par ouloul77 ] Bonjour, Voilà, pour commencer, en tant que petit nouveau, merci pour votre acceuil. Et en tant que débutant merci pour votre aide!! Je voudrai, à p 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 [Déplacé .Net --> VBA] Créer une table à partir d'une plage excel [ par lebcel ] Bonjour, J'aimerais connaitre le code VBA pour créer une table à partir d'une plage de données Excel: - J'ai un tableau Excel - J'aimerais créer un Créer un graphique à partir d'un tableau excel [ par Mickdu ] Bonjour Je cherche à créer un graphique sous VB6 à partir d'un fichier excel. un graphique avec courbe superposées. A défaut je voudrais savoir comm Créer une table à partir de paramètres dispo dans fichier Excel [ par asengs ] Bonjour, je voulais savoir s'il était possible de créer une table Access à partir d'un fichier Excel. Pour être plus précis mon fichier comporte plu récupérer chaque jour des donées dans un nouveau fichier Excel [ par Tang2006 ] Bonjour,  Je calcule au jour le jour la valeur d'un bien, pour cela je doit créer chaque jour un fichier Excel nommé selon le shémat suivant : "nom, d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales