banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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 creTabSurf

Merci 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

 

Pied de page des forums

Powered by FluxBB