Rechercher : dans
Par :

Problème avec Split VBA ACCESS

Dernière réponse le 4 jun 2009 à 15:56:41 mmmxtina, le 4 jun 2009 à 11:02:46 
 Signaler ce message aux modérateurs

Bonjour tout le monde,

Ce post vient à la suite du premier, en fait la chaîne que je récupère à partir du fichier est trsè dense. Et j'ai besoin de couper cette chaîne avec Split pour récupérer certains éléments précis.
Le problème c'est que quand je fais Split, eh bah ça fait rien du tout, je n'ai mm pas de message d'erreur du style, dépassement de capacité....

Une idée?
voici le code! merci!

Sub test()
Dim fp As Integer
Dim fichier, fic, monTab(), machaine(), chemin As String
fic = ""
chemin = "C:\...\relation.txt"
On Error Resume Next
fp = FreeFile

Open chemin For Input As #fp
While Not EOF(fp)
Line Input #fp, fichier
fic = fic & fichier
Wend
Close #fp

monTab = Split(fic, "<") 'Split(fic, "detailler(")
MsgBox monTab(1)
machaine = Split(Mid(monTab(1), 1), "'")
MsgBox machaine(0)
End Sub

quand je fais MsgBox de monTab(1), il n'ya rien qui s'affcihe la message box n'apparaît même pas!

Merci d'avance à tous!

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « Problème avec Split VBA ACCESS » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
VBA Un timer une seconde tout simple VoirEn VBA, il n'y a pas (du moins à ma connaissance) de composant Timer. On peut en créer un très facilement. Dans un module de feuille Activer/ dés activer le timer : Placer un bouton sur Feuil1 et mettre le code... Private Sub...
Télécharger Access Image VoirAvez-vous besoin de retoucher une photo ou de créer une nouvelle image ? ImageAccess est l’outil qu’il vous faut. Access Image est un éditeur graphique capable de traiter différents types d’image. Il intègre de nombreux styles de...

1

blux, le 4 jun 2009 à 11:36:31

Salut,

un tableau commence à l'indice 0, pas à 1...

A+ Blux           

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

2

mmmxtina, le 4 jun 2009 à 11:47:52

Je sais! merci blux pour l'info!!!

moi j'ai besoin de récupérer l'élément après "detailler(", donc oui, je cherche à récupérer le deuxième élément du tableau, soit indince 1!
Parcontre si tu as une idée de pourquoi ça ne fonctionne pas je suis preneuse...

Merci.

Répondre à mmmxtina

3

Polux31, le 4 jun 2009 à 11:56:27

Tu peux te servir de la fonction InStr().

Voilà ce que dit l'aide VBA:

InStr, fonction, exemple
Cet exemple utilise la fonction InStr pour renvoyer la position de la première occurrence d'une chaîne dans une autre chaîne.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' Chaîne dans laquelle s'effectue la 
' recherche.
SearchChar = "P"    ' Recherche la chaîne "P".

' Une comparaison sans respect des majuscules et des minuscules commence ' à la position 4 et renvoie 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    

' Une comparaison avec respect des majuscules et des minuscules commence ' à la position 1 et renvoie 9.
MyPos = Instr(1, SearchString, SearchChar, 0)

' Par défaut (lorsque le dernier argument est omis),la recherche respecte ' les majuscules et les minuscules.
MyPos = Instr(SearchString, SearchChar)    ' Renvoie 9.

MyPos = Instr(1, SearchString, "W")    ' Renvoie 0.


;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

4

blux, le 4 jun 2009 à 14:00:07
  • +1

Et quand tu fais un msgbox fic avant le split, tu as quoi ?

Et juste comme ça, dans cette ligne : Dim fichier, fic, monTab(), machaine(), chemin As String
seul chemin est de type string, les autres variables sont de type 'variant' car leur type n'est pas défini.

A+ Blux           

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

5

 mmmxtina, le 4 jun 2009 à 15:56:41

Re!!
Merci blux!!! sans faire expres tu as résolu le problème!!!!!!!
en fait split ne comprenani aps car les variable étaient de type variant apparement donc forcément ça plantai, maintenant j'ai réécri mon code en énumérant chaque variable Dim fichier as string,dim fic as string etc...
et ça fonctionne niquel!!

merci polux31 d'avoir répondu!!
bonne journée!

Répondre à mmmxtina