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

TatianaD75 Messages postés 1 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 7 mars 2011 - 7 mars 2011 à 18:12
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!

1 réponse

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
15 mars 2011 à 14:31
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)
0
Rejoignez-nous