2010-08-27 3 views
2

j'ai une vieille chaîne dis oldString="abc-2" je veux changer à "abc-3" donc je l'ai faitpourquoi Val (oldP) obtient 1 quand oldP = "32"?

myArray = Split(oldString, "-") 
oldP = myArray(UBound(myArray)) 
myArray(UBound(myArray))= Str(val(oldP) + 1) 
newString=join(myArray,"-") 

pourquoi dois-je obtenir le mauvais numéro ?? et si j'essaie d'utiliser Cint(), alors j'ai eu Erreur.

s'il vous plaît aider ...

juste trouvé le vrai problème. J'ai changé mon mode de saisie par accident et j'ai mis un "2-byte" numéro 2 dans le même champ, où j'ai eu mon ancienne, d'un autre enregistrement. Et après cela, CInt reconnaît mon ancien type comme mauvais type. Il semble que ms-Access ait changé implicitement l'encodage de ce champ, de sorte que Cint ne sait pas quoi faire et que Val ait la mauvaise valeur. Ils doivent avoir rendu Textfield dans Access, String fonctionne indépendamment de tous les encodages, ou tous utilisent UTF-8. Au moins, il devrait m'avertir quand il change l'encodage de ce champ de texte. Peut-être que je devrais le signaler à MS?

+1

Le code fonctionne bien pour moi. Quelle est l'erreur sur une ligne spécifique, vous voyez? Est-ce le code complet? – shahkalpesh

+0

Il est 'Join' (qui est une fonction VB) & pas" Joint ". – shahkalpesh

+0

Merci shahkalpesh. J'ai mal tapé ici ;-) – gstar2002

Répondre

0

Si votre fonction articulaire fonctionne bien, tout devrait bien se passer. Ce que vous pouvez essayer est:

Ouvrez VBA dans Access, puis ouvrez votre fenêtre Exécution (Affichage-> Fenêtre Immédiate) Ensuite, exécutez ces linese un par un et publiez vos résultats.

oldString="abc-2" 
myArray = Split(oldString, "-") 
oldP = myArray(UBound(myArray)) 
?oldP 

Cela devrait PROMT comme réponse? OldP

myArray(UBound(myArray))= Str(val(oldP) + 1) 
?myArray(1) 

Cela devrait inciter

newString=joint(myArray,"-") 
?newString 

Cela devrait inciter "abc-3"

+0

merci beaucoup, Sjuul. J'ai essayé votre chemin. Comme je l'ai dit, vous avez oldP égal à "2", mais Val (oldP) égal 0! Je viens de trouver le vrai problème. C'est très difficile. – gstar2002

+0

Je suis heureux que cela vous a aidé. Pourriez-vous "accepter" la réponse? –

+0

Salut, Sjuul ce n'est pas vraiment "la réponse". Mais je peux le faire. Muss j'ai compte ici pour accepter la réponse? – gstar2002

Questions connexes