#1 Fri 11 June 2010 12:17
- Simon AILLAUD
- Participant occasionnel
- Date d'inscription: 11 Jun 2010
- Messages: 23
[MapBasic 7.5] Variable ou Champ non défini
Bonjour, 
Je suis tout nouvel utilisateur de MapBasic, alors pour parfaire mon initiation, j'essaie de reproduire et d'adapter à mes données des codes trouvés sur le net.
Ici, j'essaie de créer une nouvelle table à partir d'une autre sous une certaine condition dans le but d'apprendre à gérer les Alias.
Ma table en entrée est Freg00 (4 variables : code_reg, nom_reg, surface, pays)
Ma table en sortie devra contenir code_reg et surface.
Mon problème viens de la ligne col_ID_reg = nomTable + "ID_REG"
puisque j'ai en retour l'erreur "Variable ou champ Freg00.ID_REG non défini".
Et je ne vois vraiment pas d'où vient l'erreur.
Voici mon code:
Code:
'----------DECLARATION DES PROCEDURES--------------------------------------------------
Declare Sub Main
Declare Function getTable() As SmallInt
Declare Sub verificateur
Declare Sub creTabSurf
'==================================================================================MAIN
'----------COMMENTAIRE SUR LE MODULE---------------------------------------------------
'Procédure principale
'--------------------------------------------------------------------------------------
Sub Main
       
    Include "C:\Program Files\MapInfo\MapBasic\MAPBASIC.DEF"
    
    Create Menu "Gestion Table" As
        "Extraire surface" HelpMsg "Permet d'extraire les surface des regions."
        Calling creTabSurf
        
    Alter Menu Bar Add "Gestion Table"
End Sub
'==============================================================================FIN MAIN
'==============================================================================getTable
'----------COMMENTAIRE SUR LE MODULE---------------------------------------------------
'Procédure qui permet de choisir une table ouverte
'--------------------------------------------------------------------------------------
Function getTable() As SmallInt
    Dim I as SmallInt
    Dim ChoixT as String
    Dim tableChoisie as String
    Dim tableauTable (10) as String
    '----------Vérifiaction qu'il y a bien une table d'ouverte:
    If Numtables() = 0 Then
        Note "Une table doit être ouverte!!!"
    Else
        Note "Il y a bien au moins une table d'ouverte."
    End If
    '----------Sélection des tables ouvertes:
    For I = 1 To Numtables()
        tableauTAble(I) = TableInfo(I,TAB_INFO_NAME)
    Next
    choixT = ""
    For I = 1 To Numtables()
        choixT = choixT + tableauTable(I) + ";"
    Next
    '----------Boite de dialogue:
    Dialog
        Title "Choix de la Table"
        Control ListBox
            Title choixT
            Calling verificateur
            ID 1
            Value 1
            Into tableChoisie
            Position 5,25
        Control OKButton
            ID 2
            Disable
        Control CancelButton
            ID 3
        Control StaticText
            Title "Choisissez une table: "
            Position 5,10
    getTable = tableChoisie
End Function
'==========================================================================FIN getTable
'==========================================================================Verificateur
'----------COMMENTAIRE SUR LE MODULE---------------------------------------------------
'Procédure qui vérifie si une valeur est lue dans la ListBox
'--------------------------------------------------------------------------------------
Sub Verificateur
    If ReadControlValue(1) Then
        Alter Control 2 Enable
    Else
        Alter Control 2 Disable
    End If
End Sub
'======================================================================FIN Verificateur
'============================================================================creTabSurf
'----------COMMENTAIRE SUR LE MODULE---------------------------------------------------
'Procédure qui crée la table des surfaces des regions.
'--------------------------------------------------------------------------------------     
Sub creTabSurf
       
    Dim nomTable as String
    Dim tab as SmallInt
    Dim tabChamp(50) as String
    Dim I as Integer
    Dim champ as SmallInt
    
    Dim col_ID_reg as Alias
    Dim col_surf as Alias
    
    Dim val_ID_reg as Integer
    Dim val_surf as String
    
    
    '----------Selection de la table par menu graphique:
    tab = getTable()
    nomTable = TableInfo(tab,TAB_INFO_NAME)
    
    '----------Recherche des champs de la table selectionnee:
    For I = 1 To NumCols(tab)
        tabChamp(I) = ColumnInfo(tab, "Col" + I, COL_INFO_NAME)
    Next
    
    '----------Creation de la table de destination:
    Create Table SurfReg(ID_REG Integer, Surf Char(1))  
    
    col_ID_reg = nomTable & "." & "ID_REG"
    col_surf = nomTable + ".SURF"
                                     
    
    Fetch First From nomTable
    While Not Eot(nomTable)
        val_ID_reg = col_ID_reg
        If val_ID_reg > 50 Then
            val_surf = col_surf
            Insert Into SurfReg(ID_REG, Surf) Values (val_ID_reg, val_surf)
        End If
        Fetch Next From nomTable
    Wend
        
End Sub
'========================================================================FIN creTabSurfMerci par avance pour votre aide.
Hors ligne
#2 Fri 11 June 2010 13:36
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MapBasic 7.5] Variable ou Champ non défini
Bonjour
Ma table en entrée est Freg00 (4 variables : code_reg, nom_reg, surface, pays)
Vous cherchez dans nomTable (la table choisie = Freg00) la valeur des enregistrements du champ "ID_REG"...qui comme vous le dites n'existe pas !!
Hors ligne
#3 Fri 11 June 2010 14:41
- Simon AILLAUD
- Participant occasionnel
- Date d'inscription: 11 Jun 2010
- Messages: 23
Re: [MapBasic 7.5] Variable ou Champ non défini
D'accord merci, je vois ce que vous voulez dire.
Par contre, j'ai repris ce code pour apprendre à manipuler cette gestion de table et les alias, mais je ne vois pas très bien à quel moment je cherche dans nomTable?
Pouvez-vous me l'indiquer svp? Merci.
Hors ligne
#4 Fri 11 June 2010 15:03
- Simon AILLAUD
- Participant occasionnel
- Date d'inscription: 11 Jun 2010
- Messages: 23
Re: [MapBasic 7.5] Variable ou Champ non défini
Je viens de trouver et de comprendre surtout, merci beaucoup!!
Hors ligne





