[RESOLU] [ACCESS] Créer des réferences simplifié a partir d'une table

Créer des réferences simplifié a partir d'une table [RESOLU] [ACCESS] - Divers - Programmation

Marsh Posté le 20-05-2003 à 09:30:20    

Bonjour,  
 
Je dispose d'un table avec des réferences matières et des dimensions.  
Voici un extrait des réferences matières de la table :  
 
 
PMMA_121245  
POM_NOIR_1233  
POM_BLANC_11455  
ABS_nnjik1231  
...
 
 
J'ai besoin, pour un soucis de visibilité avoir une autre colonne avec ces meme references simplifié, ca donnerai ca :  
 
 
PMMA  
POM  
POM  
ABS  
...
 
 
Mais je ne sais pas comment m'y prendre de manière simple.  
Pour information, cette conversion doit etre faite a chaque ouverture de la base car ces references viennent d'une table dynamique...  
 
 
J'avais pensé a quelque chose du style :  
Dans un module dont voici le contenu integral:  
 
Option Compare Database  
 
Sub refsimple()  
 
If [Tcorrespondance_matière].[REFERENCE] = "*PMMA*" Then  
[Tcorrespondance_matière].[Reference_simple] = "PMMA"  
End If  
 
End Sub

 
Mais ca ne marche pas, ca me mets une erreur de compilation : nom externe non défini.  
Une idée?
 
Je m'en remet a vous.


Message édité par GENIUS999 le 20-05-2003 à 14:35:28
Reply

Marsh Posté le 20-05-2003 à 09:30:20   

Reply

Marsh Posté le 20-05-2003 à 10:27:32    

select Mid(monchamp, 1, InStr(monchamp, '_') - 1) from  
matable ...
 
ça devrait te récupérer ce que tu veux ...
Sinon fais une recherche sur le mot Mid sur le forum  ;)  
 

Reply

Marsh Posté le 20-05-2003 à 11:11:07    

bon, je ne suis pas passé par mid, j'avais deja commencé d'une autre facon. Merci tout de meme pour ta reponse.
 
Voila se que j'ai. La probleme, c'est que ca ne fait rien, ma table reste inchangée...
 
Option Compare Database
 
Sub refsimple()
 
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Tcorrespondance" )
If (rst.BOF And rst.EOF) = False Then
    rst.MoveFirst
    While rst.EOF = False
        If rst![REFERENCE] = "*PMMA*" Then
        rst![reference_simple] = PMMA
        End If
    Wend
End If
rst.Close
 
End Sub


Message édité par GENIUS999 le 20-05-2003 à 11:11:50
Reply

Marsh Posté le 20-05-2003 à 14:25:48    

genius999 a écrit :

bon, je ne suis pas passé par mid, j'avais deja commencé d'une autre facon. Merci tout de meme pour ta reponse.
 
Voila se que j'ai. La probleme, c'est que ca ne fait rien, ma table reste inchangée...
 
Option Compare Database
 
Sub refsimple()
 
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Tcorrespondance" )
If (rst.BOF And rst.EOF) = False Then
    rst.MoveFirst
    While rst.EOF = False
        If rst![REFERENCE] = "*PMMA*" Then
        rst![reference_simple] = PMMA
        End If
    Wend
End If
rst.Close
 
End Sub



 
Normal ... là tu recherches exactement la chaine de caractere *PMMA* et celle-la uniquement !
 
Sinon Où est ton MoveNext pour le passage à l'enregistrement
suivant ?
 
Essaie ça pour ta recherche =>  
If InStr(rst![REFERENCE] , 'PMMA') <> 0 then ...

Reply

Marsh Posté le 20-05-2003 à 14:34:54    

Merci, c'est bon j'ai reussi voila le code:
 
Sub refsimple()
 
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Tcorrespondance" )
If (rst.BOF And rst.EOF) = False Then
    rst.MoveFirst
    While Not rst.EOF
         rst.Edit
            If rst![REFERENCE] Like "ABS*" Then
            rst![Reference_simple] = "ABS"
            End If
         rst.Update
         rst.MoveNext
    Wend
End If
rst.Close

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed