'Date
Sub Ma_date()
Dim RECSET As New ADODB.Recordset, numero_de_police
Call CONNEXION_PE("xx", "xx", "xx")
numero = Worksheets("Coûts").Range("A1").Value
If Len(numero) > 0 Then
RECSET.Open " select sousc.no_police as no_police from dossier sousc,contractant cntr, personne pers" & _
" where sousc.no_police = '" & numero & "' and " & _
" sousc.is_contractant = cntr.is_contractant and pers.is_personne=cntr.is_personne", cnn_Pe, adOpenDynamic, adLockBatchOptimistic
With Worksheets("Coûts").range("C1")
If Not RECSET.EOF Then
.Value = RECSET.Fields("no_police").Value
Else
.Value = "Inconnu"
End If
End With
RECSET.Close
End If
Call DECONNEXION_PE
End Sub
For i=2 to Worksheets("Coûts").Range("A1").currenteregion.rows.count
numero = Worksheets("Coûts").cells(i,"A").Value
Next
Bonjour,Bonjour,
Le code fourni copie la colonne Numéro de police dans la colonne Naissance à partir de 3 tables qu'on ne connait pas ?
Je ne vois pas trop ce qu'il faut vraiment faire et à partir de quoi ...
Vos Bases sont-elles Excel, Access, Oracle,Mysql ou Sqlite ?
Pouvez-vous joindre un exemple anonymisé ?
La date de naissance est dans quelle table ?Bonjour,
Merci pour votre aide !
For i=2 to Worksheets("Coûts").Range("A1").currenteregion.rows.count
numero = Worksheets("Coûts").cells(i,"A").Value
Next
salut @dysorthographie ,Ef fait Marie à fait tout ce qui est nécessaire côté SQL.
Elle veut juste de l'aide pour parcourir de A1:A3
Code:For i=2 to 4 numero = Worksheets("Coûts").cells(i,"A").Value Next [0code]
Merci ! C’est-à-dire, si j’ai bien compris, je dois lancer la requête ADODB autant de fois que j’ai des enregistrements dans la colonne A ?Bonjour,
Ef fait Marie à fait tout ce qui est nécessaire côté SQL.
Elle veut juste de l'aide pour parcourir de A2:A4
Code:For i=2 to Worksheets("Coûts").Range("A1").currenteregion.rows.count numero = Worksheets("Coûts").cells(i,"A").Value Next
"select champ1,Champ2 "etc
Function Ma_date(numero As String) As Variant
Dim RECSET As New ADODB.Recordset
If Len(numero) > 0 Then
Call CONNEXION_PE("xx", "xx", "xx")
RECSET.Open _
" select sousc.no_police as no_police from dossier sousc,contractant cntr, personne pers " & _
" where sousc.no_police = '" & numero & "'" & _
" and sousc.is_contractant = cntr.is_contractant" & _
" and pers.is_personne=cntr.is_personne", _
cnn_Pe, adOpenDynamic, adLockBatchOptimistic
If Not RECSET.EOF Then
Ma_date = RECSET.Fields("no_police").Value
Else
Ma_date = "Inconnu"
End If
RECSET.Close
Call DECONNEXION_PE
End If
End Function
Pour ce qui est des champs de la requête il suffit d'énumérer les champsÇa je pense que Marie c'est gérerCode:"select champ1,Champ2 "etc
Tu as here sousc.no_police = '" & numero & "
et vue que le numéro dépend de la ligne traité oui il faut requêter par
Merci, c'est-à-dire, que je ne peux pas "transformer" la colonne "A" en "base de données" pour faire une jointure avec mes bases de données. En fait, je me demandais si c'était possible.Pour ce qui est des champs de la requête il suffit d'énumérer les champsÇa je pense que Marie c'est gérerCode:"select champ1,Champ2 "etc
Tu as here sousc.no_police = '" & numero & "
et vue que le numéro dépend de la ligne traité oui il faut requêter par ligne
Merci, c'est-à-dire, que je ne peux pas "transformer" la colonne "A" en "base de données" pour faire une jointure avec mes bases de données. En fait, je me demandais si c'était possible.
" Left Join [Feuil1$A2:A4] as Local " & _
" On (Local.Numéro=sousc.no_police) "
Sub Ma_dates()
Dim I As Integer
Call CONNEXION_PE("xx", "xx", "xx")
With Sheets("Coûts").ranhe("A1").CurrentRegion
For I = 2 To .Rows.Count
If Trim("" & .Cells(I, "A")) <> "" Then .Cells(I, "C") = Ma_date(.Cells(I, "A"), cnn_Pe)
next
End With
Call DECONNEXION_PE
End Sub
Function Ma_date(numero As String, cnn_Pe As Object) As Validation
With cnn_Pe.Execute(" select sousc.no_police as no_police from dossier sousc,contractant cntr, personne pers" & _
" where sousc.no_police = '" & numero & "' and " & _
" sousc.is_contractant = cntr.is_contractant and pers.is_personne=cntr.is_personne")
If Not .EOF Then
Ma_date = .Fields("no_police").Value
Else
Ma_date = "Inconnu"
End If
.Close
End With
End Function
Merci beaucoup ! Si, par exemple, j’ai deux enregistrements des dates pour un numéro, est-il possible de faire un Insert pour écrire dans une cellule supplémentaire ?Dans la mesure du possible il es préférable de ne pas ce connecter déconnecter à chaque requête !
VB:Sub Ma_dates() Dim I As Integer Call CONNEXION_PE("xx", "xx", "xx") With Sheets("Coûts").ranhe("A1").CurrentRegion For I = 2 To .Rows.Count If Trim("" & .Cells(I, "A")) <> "" Then .Cells(I, "C") = Ma_date(.Cells(I, "A"), cnn_Pe) next End With Call DECONNEXION_PE End Sub Function Ma_date(numero As String, cnn_Pe As Object) As Validation With cnn_Pe.Execute(" select sousc.no_police as no_police from dossier sousc,contractant cntr, personne pers" & _ " where sousc.no_police = '" & numero & "' and " & _ " sousc.is_contractant = cntr.is_contractant and pers.is_personne=cntr.is_personne") If Not .EOF Then Ma_date = .Fields("no_police").Value Else Ma_date = "Inconnu" End If .Close End With End Function
Bonjour,Dans la mesure du possible il es préférable de ne pas ce connecter déconnecter à chaque requête !
VB:Sub Ma_dates() Dim I As Integer Call CONNEXION_PE("xx", "xx", "xx") With Sheets("Coûts").ranhe("A1").CurrentRegion For I = 2 To .Rows.Count If Trim("" & .Cells(I, "A")) <> "" Then .Cells(I, "C") = Ma_date(.Cells(I, "A"), cnn_Pe) next End With Call DECONNEXION_PE End Sub Function Ma_date(numero As String, cnn_Pe As Object) As Validation With cnn_Pe.Execute(" select sousc.no_police as no_police from dossier sousc,contractant cntr, personne pers" & _ " where sousc.no_police = '" & numero & "' and " & _ " sousc.is_contractant = cntr.is_contractant and pers.is_personne=cntr.is_personne") If Not .EOF Then Ma_date = .Fields("no_police").Value Else Ma_date = "Inconnu" End If .Close End With End Function