Importer dans Excel une requête Access comportant des champs null

Messages postés
1
Date d'inscription
lundi 7 mars 2011
Statut
Membre
Dernière intervention
7 mars 2011
- - Dernière réponse : aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
- 15 mars 2011 à 14:31
Bonjour!

Après avoir passé en revue plusieurs topics, je n'arrive pas à trouver de solutions à mon problème. J'ai donc décidé de (enfin) crée un compte sur le forum

Voici mon problème:
Je désire importer une requête Access dans un classeur Excel. Cependant, cette requête comporte des champs null (dans le champs SP).
Il fonctionne très bien quand je n'importe pas la colonne SP... je pense donc qu'il faudrait que je remplace les champs Null par une valeur...

Mon code est le suivant:

Sub Creating_Universe()
Dim connFI As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Fld As ADODB.Field
Dim x As Integer
'Dim y As Integer
Dim mat() As Variant
Dim mat_1() As Variant
Dim i As Integer
Dim j As Integer
x = 0
y = 0

Base_path = "**********************"
Date_update = Sheets("Sheet1").Range("F4").Value

Range("A2:K60000").Clear

Set connFI = New ADODB.Connection
connFI.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
Base_path & ";"
Set rs = New ADODB.Recordset

SQL_Querry = "SELECT Database.Period, Database.Number, Database.Description, Database.Abbr, " & _
"Database.Notes, Database.Industry" & _
"Database.SP, CASE WHEN Database.SP IS NULL THEN 'ND' else Database.SP END as SP" & _
"FROM Database " & _
"WHERE (((Database.Period)='" & Date_update & "')

Set rs = connFI.Execute(SQL_Querry)

Do While Not rs.EOF
mat = rs.GetRows()
Loop

connFI.Close
Set connFI = Nothing

x = UBound(mat, 1)
y = UBound(mat, 2)
mat_1 = WorksheetFunction.Transpose(mat)

For i = 1 To x + 1
For j = 1 To y + 1
Cells(j + 1, i).Value = WorksheetFunction.Index(mat_1, j, i)
Next j
Next i

End Sub


Est-ce que quelqu'un aurait une solution à mon problème?
N'hésitez pas à me contacter pour plus de renseignements sur le code

Merci!
Afficher la suite 

1 réponse

Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
0
Merci
Bonjour

Vous pouvez utiliser COALESCE(), qui prend un nombre variabel de parametres, et qui renvoi le premier non null

Sous access, je crois que vous avez aussi IFNULL(val1, val2)
Commenter la réponse de aieeeuuuuu