Perte de fonction après compilation

Résolu
lap2 Messages postés 36 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 novembre 2007 - 26 janv. 2007 à 10:16
lap2 Messages postés 36 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 novembre 2007 - 29 janv. 2007 à 14:46
Salut à tous,

Il s'agit d'un projet de base de donnée avec une Sub de recherche d'enregistrement. Elle marche très bien lorsque qu'elle est exécutée depuis l'application mais ne marche plus après compilation.
Pourtant il n'y a aucun message d'erreur. Je sélectionne l'enregistrement que je veux charger dans la liste, le message dit que l'enregistrement a été extrait mais cela n'est pas le cas!
Est-ce quelqu'un sait pourquoi ?

Code côté visionneuse de la base :

                 Case "btnRechercher"
      Dim iReturn As Integer
      gFindString = ""
        StatusBar1.Panels.Item(2).Text = "Recherche en cours..."
      With frmRechercher
        .AddCaption = "Entrez le nom du déchet à trouver"
        .recordSource = "SELECT DesignDech FROM Dechet ORDER BY DechID"
        .Show vbModal
      End With
     
      If (Len(gFindString) > 0) Then
        With ctrlData1.Recordset
          .FindFirst "DesignDech = '" & gFindString & "' "
          If (.NoMatch) Then
            iReturn = MsgBox("Le déchet <" & Replace(gFindString, "''", "'") & _
                    " > n'a pas été trouvé.", vbCritical, "déchet")
          Else
            iReturn = MsgBox("Le déchet < " & Replace(gFindString, "''", "'") & _
            " > a été extrait", vbInformation, "Déchet")
                    
          End If
        End With
      End If

Code côté FrmRechercher ( VB MODAL) :

Public Property Let recordSource(ByVal strNewValue As String)
    ctrlRechercher.recordSource = strNewValue
End Property
Public Property Let AddCaption(ByVal strNewValue As String)
    lblDirectives = strNewValue
End Property
Private Sub cmdAnnuler_Click()
    Unload Me
End Sub
Private Sub Form_Activate()
gDataBaseName = App.Path & "\gestDechMarkIV.mdb"
    List1.Enabled = False
        ctrlRechercher.DatabaseName = gDataBaseName
        ctrlRechercher.Refresh
            If (ctrlRechercher.Recordset.RecordCount > 0) Then
             Screen.MousePointer = vbHourglass
             ctrlRechercher.Recordset.MoveFirst
              While Not ctrlRechercher.Recordset.EOF
              List1.AddItem ctrlRechercher.Recordset.Fields(0) & ""
              ctrlRechercher.Recordset.MoveNext
              Wend
            List1.Enabled = True
            DoEvents
            End If
           lblCompteur = "Il y a " & ctrlRechercher.Recordset.RecordCount & " enregistrements"
           Screen.MousePointer = vbDefault
End Sub


Private Sub Form_Unload(Cancel As Integer)
    Set frmRechercher = Nothing
End Sub


Private Sub List1_DblClick()
'Obtient l'élément sur lequel l'utilisateur a cliqué et l'affecte à gFindString
  If (InStr(List1, "'")) Then
    gFindString = Replace(List1, "'", "''")
  Else
    gFindString = List1
  End If
  Unload frmRechercher
End Sub
Private Sub txtRechercher_Change()
 Dim entryNum As Long
 Dim txtARechercher As String
 txtARechercher = txtRechercher.Text
  entryNum = sendMessageByString(List1.hWnd, LB_SELECTSTRING, 0, txtARechercher)
 
End Sub

Merci,

@+

Lap2

1 réponse

lap2 Messages postés 36 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 novembre 2007
29 janv. 2007 à 14:46
Pour ceux qui se seraient posés la question, j'ai fini par trouver. Il faut laisser le temps au système de solder tous les évennements avant de passer d'un form à l'autre. J'ai donc ajouté :
DoEvents entre les deux et plus de problème!

                 Case "btnRechercher"
      Dim iReturn As Integer
      gFindString = ""
        StatusBar1.Panels.Item(2).Text = "Recherche en cours..."
      With frmRechercher
        .AddCaption = "Entrez le nom du déchet à trouver"
        .recordSource = "SELECT DesignDech FROM Dechet ORDER BY DechID"
        .Show vbModal
      End With
DoEvents      
      If (Len(gFindString) > 0) Then
        With ctrlData1.Recordset
          .FindFirst "DesignDech = '" & gFindString & "' "
          If (.NoMatch) Then
            iReturn = MsgBox("Le déchet <" & Replace(gFindString, "''", "'") & _
                    " > n'a pas été trouvé.", vbCritical, "déchet")
          Else
            iReturn = MsgBox("Le déchet < " & Replace(gFindString, "''", "'") & _
            " > a été extrait", vbInformation, "Déchet")
                    
          End If
        End With
      End If
@+

Lap2
3
Rejoignez-nous