Chaine de caractère entre dièse inattendu - SQL/NoSQL - Programmation
MarshPosté le 20-03-2013 à 12:29:00
Bonjour,
Je débute en SQL sous acces et j'ai un petit soucis. J'ai un attriubut qui contient des adresses relatives et lorsque j'exécute une requête SQL sous VBA pour les récupérer elles apparaissent entre dièses. Exemple :
#../dossier/sous dossier/encore un dossier/blablabla#
Au lieu de
../dossier/sous dossier/encore un dossier/blablabla
Qui est rentré en base.
J'ai trouvé une solution pour les retirer (et les mettre en hyperlien dans un formulaire) mais quelques liens (rare mais gênant) n'ont pas de dièses d'autres n'en ont pas au début et d'autres n'en ont pas à la fin. Je vous mets le code :
Code :
Private Sub Form_Current()
Dim Cnn As New ADODB.Connection
Set Cnn = CurrentProject.Connection
Dim strSQL1 As String
Dim RS1 As New ADODB.Recordset
Dim strLen As Integer
Dim adrTemp As String
strSQL1 = "SELECT LienAudit FROM ID_BAT WHERE id=" & id_bat.Value
RS1.Open strSQL1, Cnn
adrTemp = Mid(RS1.Fields(0), 2)
strLen = Len(adrTemp) - 1
adrTemp = Mid(adrTemp, 1, strLen)
adr.HyperlinkAddress = adrTemp
Dim strSQL2 As String
Dim RS2 As New ADODB.Recordset
strSQL2 = "SELECT adr FROM ID_BAT WHERE id=" & id_bat.Value
RS2.Open strSQL2, Cnn
adr.Caption = RS2.Fields(0)
Dim strSQL3 As String
Dim RS3 As New ADODB.Recordset
strSQL3 = "SELECT compl FROM ID_BAT WHERE id=" & id_bat.Value
RS3.Open strSQL3, Cnn
If RS3.Fields(0) <> "" Then
compl.Caption = RS3.Fields(0)
Else
compl.Caption = ""
End If
RS1.Close
RS2.Close
RS3.Close
De la ligne 11 à 15, c'est le code pour retirer les dièses.
EDIT : Et la question (^^) : D'où viennent ses dièses ?
PS: Je sais pas si le problème viens de SQL ou de VBA mais vu que c'est Access je le mets dans cette catégorie. PS2: le code est pas beau certe, mais il marche PS3 : Ce n'est pas le problème mais je fais plusieurs recordset car je n'arrive pas à extraire deux attribut (j'ai pensé à RS.fields(0), RS.Fields(1) mais ça marche pas), si vous avez le temps de répondre à ce problème aussi je vous serez infiniment reconnaissant !
Message édité par grimreaper le 20-03-2013 à 13:53:22
Marsh Posté le 20-03-2013 à 12:29:00
Bonjour,
Je débute en SQL sous acces et j'ai un petit soucis. J'ai un attriubut qui contient des adresses relatives et lorsque j'exécute une requête SQL sous VBA pour les récupérer elles apparaissent entre dièses. Exemple :
#../dossier/sous dossier/encore un dossier/blablabla#
Au lieu de
../dossier/sous dossier/encore un dossier/blablabla
Qui est rentré en base.
J'ai trouvé une solution pour les retirer (et les mettre en hyperlien dans un formulaire) mais quelques liens (rare mais gênant) n'ont pas de dièses d'autres n'en ont pas au début et d'autres n'en ont pas à la fin. Je vous mets le code :
De la ligne 11 à 15, c'est le code pour retirer les dièses.
EDIT : Et la question (^^) : D'où viennent ses dièses ?
PS: Je sais pas si le problème viens de SQL ou de VBA mais vu que c'est Access je le mets dans cette catégorie.
PS2: le code est pas beau certe, mais il marche
PS3 : Ce n'est pas le problème mais je fais plusieurs recordset car je n'arrive pas à extraire deux attribut (j'ai pensé à RS.fields(0), RS.Fields(1) mais ça marche pas), si vous avez le temps de répondre à ce problème aussi je vous serez infiniment reconnaissant !
Message édité par grimreaper le 20-03-2013 à 13:53:22