IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

remplir une table vierge via une requete


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 67
    Points : 35
    Points
    35
    Par défaut remplir une table vierge via une requete
    Bonjour à tous voilà j ai une requete avec 18 champs et 1 ligne et j aimerai à partir de celle ci remplir une table vierge au départ en ne selectionnant que quelques un des 18 champs ( en réalité 6 pour etre exact)
    En plus j aimerai remplir cette table pour avoir 2 lignes c est à dire une ligne avec 3 champs ( sur les 6) et une autre avec les 3 autres ( sur les 6 toujours)

    Comment aussi mettre à jour cette table quand je modifie ma requete dynamiquement en conservant uniquement ces 2 lignes sans en ajouter d autres.

    Voilà le code que j ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    
    Private Sub form_current()
    
    
    
    Dim DB As DAO.Database
    Dim RecTabCible As DAO.Recordset
    Dim CurRecQuery As DAO.Recordset
    Dim avarRecords As Variant
    
    Set DB = CurrentDb
    
    Set CurRecQuery = DB.OpenRecordset("select * from selection")
    avarRecords = CurRecQuery.GetRows(0)
    Set RecTabCible = DB.OpenRecordset("graph1")
                        
                       
                        
                             
                            
                           
    With RecTabCible
    
    If RecTabCible.RecordCount <> 0 Then
    CurRecQuery.MoveFirst
    
    
    RecTabCible.Fields(0).Value = -1
    RecTabCible.Fields(1).Value = avarRecords(16, 0)
    RecTabCible.Fields(2).Value = avarRecords(20, 0)
    RecTabCible.Fields(3).Value = avarRecords(21, 0)
    
    CurRecQuery.MoveNext
    
    RecTabCible.Fields(0).Value = 1
    RecTabCible.Fields(1).Value = avarRecords(17, 0)
    RecTabCible.Fields(2).Value = avarRecords(18, 0)
    RecTabCible.Fields(3).Value = avarRecords(19, 0)
    
    RecTabCible.Update
    
    Else
    
    RecTabCible.AddNew
    
    RecTabCible.Fields(0).Value = -1
    RecTabCible.Fields(1).Value = avarRecords(16, 0)
    RecTabCible.Fields(2).Value = avarRecords(20, 0)
    RecTabCible.Fields(3).Value = avarRecords(21, 0)
    
    RecTabCible.Update
    RecTabCible.AddNew
    
    RecTabCible.Fields(0).Value = 1
    RecTabCible.Fields(1).Value = avarRecords(17, 0)
    RecTabCible.Fields(2).Value = avarRecords(18, 0)
    RecTabCible.Fields(3).Value = avarRecords(19, 0)
    
    
    RecTabCible.Update
    
    
    End If
    End With
    
    Set RecTabCible = Nothing
    Set CurRecQuery = Nothing
                                        
                        
                        
    End Sub

    et j ai le message suivant argument non valide avec la zone au dessus en rouge.
    kelkun aurait il une idée.
    Merci

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Pour être, je n'ai rien compris à ton code.

    Pour inserer deux enregistrements selon les 6 champs que tu veux, moi je ferais comme ca (si tu est vraiment certain que tu n'aura qu'une seule ligne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO TaTable(Champ1, Champ2, Champ3) select champ1, champ2, champ3 from selection
     
    INSERT INTO TaTable(Champ1, Champ2, Champ3) select champ4, champ5, champ6 from selection
    Pour la modification, ce sera un UPDATE.

Discussions similaires

  1. Alimenter une table sql via une requete ?
    Par lastsql dans le forum Développement
    Réponses: 14
    Dernier message: 09/09/2010, 16h15
  2. Réponses: 3
    Dernier message: 04/06/2008, 10h19
  3. requete liant une table access et une Table Oracle
    Par simbonikala dans le forum Oracle
    Réponses: 2
    Dernier message: 05/07/2007, 18h25
  4. Réponses: 6
    Dernier message: 16/06/2006, 13h22
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo