comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne
apparaissent en colonnes?
nb: j'ai deja essayé l'analyse croisé? mais ne
marche pas car il m'est
impossible d'afficher qu'une seule en tete
de colonne et qu'une seule valeur.
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne
apparaissent en colonnes?
nb: j'ai deja essayé l'analyse croisé? mais ne
marche pas car il m'est
impossible d'afficher qu'une seule en tete
de colonne et qu'une seule valeur.
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne
apparaissent en colonnes?
nb: j'ai deja essayé l'analyse croisé? mais ne
marche pas car il m'est
impossible d'afficher qu'une seule en tete
de colonne et qu'une seule valeur.
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton messagecomment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton message <1185437525.584418.293500@d55g2000hsg.googlegroups.com>
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton messagecomment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
Tu as vu la quantité de code qu'il te faut pour faire ce qu'Excel propose en
une ligne ?;-)
--
Tisane
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton message ducomment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
-- Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
Tu as vu la quantité de code qu'il te faut pour faire ce qu'Excel propose en
une ligne ?;-)
--
Tisane
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton message <1185437525.584418.293500@d55g2000hsg.googlegroups.com> du
comment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
-- Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
La fonction suivante fait exactement ce que tu veux:
Function TransposeQuery(strSource As String, strTarget As String)
Dim db As DAO.Database
Dim tdfNewDef As DAO.TableDef
Dim fldNewField As DAO.Field
Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
Dim i As Integer, j As Integer
[...]
Tu as vu la quantité de code qu'il te faut pour faire ce qu'Excel propose en
une ligne ?;-)
--
Tisane
On Error GoTo Transposer_Err
Set db = CurrentDb()
Set rstSource = db.OpenRecordset(strSource)
rstSource.MoveLast
' Crée une nouvelle table pour contenir les données transposées.
' Crée un champ pour chaque enregistrement de la table d'origine.
Set tdfNewDef = db.CreateTableDef(strTarget)
For i = 0 To rstSource.RecordCount
Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbText)
tdfNewDef.Fields.Append fldNewField
Next i
db.TableDefs.Append tdfNewDef
' Ouvre la nouvelle table et complète le premier champ avec
' les noms des champs de la table d'origine.
Set rstTarget = db.OpenRecordset(strTarget)
For i = 0 To rstSource.Fields.Count - 1
With rstTarget
.AddNew
.Fields(0) = rstSource.Fields(i).Name
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveFirst
' Complète chaque colonne de la nouvelle table
' avec un enregistrement de la table d'origine.
For j = 0 To rstSource.Fields.Count - 1
' Commence par le second champ, car le premier
' contient déjà les noms des champs.
For i = 1 To rstTarget.Fields.Count - 1
With rstTarget
.Edit
.Fields(i) = rstSource.Fields(j)
rstSource.MoveNext
.Update
End With
Next i
rstSource.MoveFirst
rstTarget.MoveNext
Next j
db.Close
Exit Function
Transposer_Err:
Select Case Err
Case 3010
MsgBox "La table " & strTarget & " existe déjà."
Case 3078
MsgBox "La table " & strSource & " n'existe pas."
Case Else
MsgBox CStr(Err) & " " & Err.Description
End Select
Exit Function
End Function
Dans ton message ducomment transposer l'affichage d'une requête?
c'est a dire que les données qui sont en ligne apparaissent en
colonnes?
merci
nb: j'ai deja essayé l'analyse croisé? mais ne marche pas car il m'est
impossible d'afficher qu'une seule en tete de colonne et qu'une seule
valeur.
merci
-- Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info