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

VB 6 et antérieur Discussion :

[VB6]Connection à une base de données Oracle [Infos]


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut
    Citation Envoyé par Zoilus
    Je ne reçois aucun message d'erreur, c'est seulement que le datacombo demeure vide (si j'inscrit un datafield, le 1er champ de la requête apparaît dans le champs texte, mais pas dans le menu déroulant).
    oublie le DataCombo pour le moment, vérifie que ton Recordset contient déjà des éléments.
    un simple MsgBox Rs.RecordCount suffira pour voir s'il y a des éléments ou non (biensur il faut vérifier dans ta bdd si tu as bel et bien saisis des éléments ou non)

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut
    Merci pour l'astuce, j'ai effectivement un erreur avec mon recordset, comme il me retourne -1...

    Je ne comprend pas pourquoi par exemple...

    Voici la dernière version de mon programme:

    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
    Private Sub Command1_Click()
     
          Dim Conn As New ADODB.Connection
          Dim Rs As ADODB.Recordset
          Dim Rs2 As ADODB.Recordset
          Dim strSQL As String
     
          'Oracle Connection
          Conn.Open "Provider=MSDAORA.1;User ID=cj;Data Source=adop;Persist Security Info=False", Text1.Text, Text2.Text
     
          'Oracle Connection
          strSQL = "SELECT initiales, dispensateur FROM cjt_cn_tb_employe"
          'strSQL2 = "SELECT initiales FROM cjt_cn_tb_employe WHERE initiales is not null"
     
          Set Rs = New ADODB.Recordset
          'Set Rs2 = New ADODB.Recordset
          Rs.Open strSQL, Conn, adOpenStatic, adLockReadOnly
          'Rs2.Open strSQL, Conn, adOpenStatic, adLockReadOnly
     
          MsgBox Rs.RecordCount
     
          DataCombo1.ListField = "Initiales"
          DataCombo1.BoundColumn = "dispensateur"
          DataCombo1.DataField = "Initiales"
     
          Set DataCombo1.RowSource = Rs
          Set DataCombo1.DataSource = Rs
     
          DataCombo1.Refresh
     
    End Sub

    Merci beaucoup pour toute l'aide que vous me donnez, c'est vraiment apprécié

  3. #3
    Membre confirmé
    Avatar de elifqaoui
    Inscrit en
    Juillet 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 152
    Par défaut
    Citation Envoyé par Zoilus
    Merci pour l'astuce, j'ai effectivement un erreur avec mon recordset, comme il me retourne -1...

    Je ne comprend pas pourquoi par exemple...
    Merci beaucoup pour toute l'aide que vous me donnez, c'est vraiment apprécié
    ben déjà maintenant on est fixé sur l'origine du problème, voilà un petit d'ex de connection et d'utilisation de requetes PL/SQL
    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
    Option Explicit
    Private mCnn As ADODB.Connection
    Private mrsSelect As ADODB.Recordset
    Private mCmd As ADODB.Command
    Private msSelect As String
    Private mCmdPrmGender As New ADODB.Parameter
     
    Private Sub Form_Load()
     
    Dim sConnect As String 'Declare our connection string
    sConnect = "Data Source=" & ";" & _
               "User ID=scott" & ";" & _
               "Password=tiger" & ";"
     
    Set mCnn = New ADODB.Connection
    With mCnn
        .CommandTimeout = 10
        .CursorLocation = adUseClient
        .Provider = "MSDAORA"
        .Open sConnect
    End With
     
    'resultset is a keyword, fname the name of the table in the proc.
     
    msSelect = "{call human_resources.first_names(?, {resultset 1000, fname})}"
     
    Set mCmd = New ADODB.Command
     
    With mCmd
        .CommandText = msSelect
        .CommandType = adCmdText
        .ActiveConnection = mCnn
        Set mCmdPrmGender = .CreateParameter("pGender", adVarChar, _
                            adParamInput, 1, "M")
        .Parameters.Append mCmdPrmGender
    End With
     
    Set mrsSelect = New ADODB.Recordset
     
    mCmdPrmGender = "M"
    Set mrsSelect = mCmd.Execute
    MsgBox mrsSelect.Fields(0)
     
    End Sub
    autre ressource :
    http://support.microsoft.com/default.aspx?scid=kb;en-us;q176936

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut
    Ça fonctionne!

    J'ai utilisé le dernier exemple pour reconstruire mon code, et tout fonctionne maintenant!

    Merci pour tout à vous deux, je vous suis éternellement reconnaissant!

    Pour bien terminer la discussion, voici ma dernière version de code:

    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
    Private mCnn As ADODB.Connection
    Private mrsSelect As ADODB.Recordset
    Private mCmd As ADODB.Command
    Private msSelect As String
     
     
    Private Sub Command1_Click()
     
      Dim sConnect As String 'Declare our connection string
      sConnect = "Data Source=adop" & ";" & _
                 "User ID=login" & ";" & _
                 "Password=passwd" & ";"
     
      Set mCnn = New ADODB.Connection
      With mCnn
          .CommandTimeout = 10
          .CursorLocation = adUseClient
          .Provider = "MSDAORA"
          .Open sConnect
      End With
     
      'resultset is a keyword, fname the name of the table in the proc.
      msSelect = "SELECT initiales, dispensateur FROM cjt_cn_tb_employe"
     
      Set mCmd = New ADODB.Command
     
      With mCmd
          .CommandText = msSelect
          .CommandType = adCmdText
          .ActiveConnection = mCnn
      End With
     
      Set mrsSelect = New ADODB.Recordset
     
      Set mrsSelect = mCmd.Execute
     
      MsgBox mrsSelect.RecordCount
     
      DataCombo1.ListField = "Initiales"
      DataCombo1.BoundColumn = "dispensateur"
     
      Set DataCombo1.RowSource = mrsSelect
      Set DataCombo1.DataSource = mrsSelect
    End Sub

  5. #5
    Membre éprouvé
    Avatar de khany
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 073
    Par défaut
    Il y en a toujours plus dans 2 têtes que dans une !
    C'est pour ca que l'équipe existe

    Bonne continuation

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut sur le même thème !
    Salut à tous !
    Sur le même thème (ie remplir un combo avec un rowsource), je dois remplir le combo "nom2" avec un recordset que j'obtiens à partir d'une autre base (pkoi faire simple...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private Sub Form_Open(Cancel As Integer)
      Dim conn As New ADODB.Connection, rst As New ADODB.Recordset
     
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=\\192.168.0.1\mallettes\base_animateurs.mdb;"
        rst.Open "SELECT ani_nom FROM ANIMATEUR ", conn, adOpenForwardOnly, adLockReadOnly
        Set nom2.RowSource = rst
        Set nom2.DataSource = rst
        rst.Close
    End Sub
    Cette connexion fonctionne puisque j'effectue une autre opération avec succès sur cette base "distante".
    L'erreur est "Erreur de compilation: utilisation incorrecte de la propriété" et bloque dès l'entrée dans la sub...

    Merci pour votre aide qui m'a déjà permis d'écrire 2 lignes de plus !

    @+
    Etienne

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Peut-on se connecter a une base de donnée de multimania ?
    Par seb_bacteria dans le forum Bases de données
    Réponses: 5
    Dernier message: 03/04/2006, 21h39
  2. connection a une base de donné access
    Par akimmm dans le forum MFC
    Réponses: 5
    Dernier message: 19/11/2005, 00h08
  3. connection a une base de données dans univers Hibernate
    Par lilou77 dans le forum Hibernate
    Réponses: 10
    Dernier message: 26/10/2005, 10h48
  4. connection a une base de donnée access
    Par zorglub88 dans le forum MFC
    Réponses: 7
    Dernier message: 10/06/2005, 14h12
  5. se connecter à distance à une base de données interbase 6
    Par devalender dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/05/2004, 17h39

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