Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1732 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme de variable VB Access

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de variable VB Access

n°1658031
dedooz
Posté le 13-12-2007 à 22:54:31  profilanswer
 

Bonjour,
je suis actuellement sur un projet d'extraction de requette sql sur acces vers un tableur exel, pour cela j'utilise VB sous acces, donc pour le moment j'arrive a extraire ma requette, mais lorsque je veux mettre une variable a partir d'une textbox  dans ma requete ca plante, voici mon code :
 
La ligne en rouge est désigné comme erronée (je signal juste que je susi débutant en VB), voici l'erreur indiquée :
 
"Erreur d'exécution '2185' :
Impossible de faire référenceà une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé."
 
J'espere que vous pouvez m'aider c assé urgent .
 
---------------
 
Option Compare Database
 
Option Explicit
 
Dim Xlapp As Excel.Application
 
Dim XlBook As Excel.Workbook
 
Dim XlSheet As Excel.Worksheet
 
 
Public Sub ExporteVersExcel()
 
 
 
Dim Db As DAO.Database
 
Dim Rs As DAO.Recordset
 
Dim NomFeuille As String
 
Dim id As TextBox
 
id = formtest.text_id.Text
 
 
    On Error GoTo Err_ExporteVersExcel
 
     
 
    Set Xlapp = New Excel.Application
 
    'Set Xlapp = GetObject(, "Excel.Application" )
 
    'On Error GoTo oups:
 
    On Error GoTo 0
 
    Xlapp.Visible = True
 
    NomFeuille = "Exportation des tables"
 
    'NomFeuille = "Save" & DatePart("ww", Date)
 
    Set XlBook = Xlapp.Workbooks.Open("d:\Nvx.xls" )
 
     
 
    If FeuilleExiste(NomFeuille, XlBook.Name) Then
 
        Set XlSheet = XlBook.Worksheets("S07" )
 
        ' efface les données
 
        XlSheet.Cells.Clear
 
    Else
 
        ' Ajouter nouvelle feuille en dernière position
 
        Set XlSheet = XlBook.Worksheets.Add(, XlBook.Worksheets(XlBook.Worksheets.Count))
 
        XlSheet.Name = NomFeuille
 
    End If
 
 
 
    Set Db = CurrentDb
 
    ' Copie dans feuille (nouvelle ou effacée)
 
    'Set Rs = Db.OpenRecordset("T31_Cumul_Nvx_clients_par_BG", , dbOpenForwardOnly)
 
    Set Rs = Db.OpenRecordset("SELECT * FROM test WHERE id = " & id & " ", , dbOpenForwardOnly)
 
    XlSheet.Range("A2" ).CopyFromRecordset Rs
 
    Set XlSheet = Nothing
 
    ' remise au début car le 'CopyFromRecordset' ne le fait pas
 
    Rs.MoveFirst
 
    '??? une 2ième foiS ??? XlSheet.Range("A1" ).CopyFromRecordset Rs
 
    ' Ferme les Var
 
     
 
    'Rs.Close '(lancer d'un form déjà aménagé pour moi)
 
    Set Rs = Nothing
 
    'Db.Close '(lancer d'un form déjà aménagé pour moi)
 
    Set Db = Nothing
 
     
 
    Set XlSheet = Nothing
 
    ' Sauve le fichier
 
    XlBook.Save
 
    'XlBook.Close
 
    Set XlBook = Nothing
 
    Set Xlapp = Nothing
 
 
 
'lupin*****************
 
Exit_ExporteVersExcel:
 
    '...
 
    Exit Sub
 
 
 
Err_ExporteVersExcel:
 
     
 
    'Err 429 : Un serveur OLE Automation ne peut pas créer d'objet
 
    ' -> Excel n'est PAS encore ouvert.
 
    If Err = 429 Then
 
        Set Xlapp = CreateObject("Excel.Application" )
 
        Resume Next
 
    End If
 
     
 
oups:
 
    MsgBox Err.Number & " - " & Err.Description
 
    Resume Exit_ExporteVersExcel
 
     
 
End Sub
 
'
 
 
 
Function FeuilleExiste(NomFeuille As String, Classeur As String) As Boolean
 
 
 
    Dim Feuille As Object
 
     
 
    FeuilleExiste = False
 
    For Each Feuille In Xlapp.Worksheets
 
        If (Feuille.Name = NomFeuille) Then
 
            FeuilleExiste = True
 
        End If
 
    Next Feuille
 
 
 
End Function
 
'
 

mood
Publicité
Posté le 13-12-2007 à 22:54:31  profilanswer
 

n°1658084
tegu
Posté le 14-12-2007 à 09:23:46  profilanswer
 

id est un objet (TextBox), donc tu ne peux pas le remplir avec la propriété .Text
Veux-tu affecter l'objet ou bien la valeur de la propriété .Text ?

n°1658167
dedooz
Posté le 14-12-2007 à 11:08:23  profilanswer
 

tegu a écrit :

id est un objet (TextBox), donc tu ne peux pas le remplir avec la propriété .Text
Veux-tu affecter l'objet ou bien la valeur de la propriété .Text ?


 
J'aimerais lui affecter la valeur de la TextBox, c'est a dire si je rentre 24 dans la textbox, je ca me rentre 24 dans ma requete.

n°1658286
tegu
Posté le 14-12-2007 à 13:37:49  profilanswer
 

Tu dois donc déclarer id de type String, pas TextBox.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme de variable VB Access

 

Sujets relatifs
probleme java et tokenizer[C++] [resolu] Problème de templates
Problème affichage XML dans IEPetit problème avec mon algo de tri !
problème de connexion oracle 9i[VBA] probleme de pièce jointe outlook
[Perl] Problème de syntaxeprobleme de droit pour acceder a une page avec site nuked clan
[Resolu] Probleme de hauteur de tableauprobleme java bean
Plus de sujets relatifs à : Probleme de variable VB Access


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR