Effectivement, ma proposition ne tient pas la route !
Errare humanum est…
…perseverare finalement trouvam !
Dans mon exemple, la colonne « Appellation » est susceptible d’être absente. En d’autres termes, la source de l’état sera
[/CENTER]
Une fonction qui permet de déterminer si une colonne est présente dans une source :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Option Compare Database
Option Explicit
Public Function ColExiste(NomColonne As String, NomSource As String) As Boolean
On Error GoTo GestionErreurs
Dim sCol As String
sCol = DLookup(NomColonne, NomSource)
If Not IsNull(sCol) Then ColExiste = True
GestionErreurs:
Select Case Err.Number
Case 2471 ' la colonne n'existe pas
End Select
End Function |
Elle renvoie True si la colonne existe, False sinon.
J’ai deux requêtes
![](http://claudeleloup.developpez.com/&99/L6063.jpg )
Respectivement :
SELECT tVins.* FROM tVins;
et
SELECT tVins.*, "-" AS Appellation FROM tVins;
Dans l’état, ces contrôles
![](http://claudeleloup.developpez.com/&99/L6065.jpg )
Mais pas de source, celle-ci est aménagée à l’ouverture de l’état :
1 2 3 4 5 6 7 8 9 10 11
| Option Compare Database
Option Explicit
Private Sub Report_Open(Cancel As Integer)
If ColExiste("Appellation", "tVins") = True Then
Me.RecordSource = "rSiAvec"
Else
Me.RecordSource = "rSiSans"
End If
End Sub |
Partager