2012-02-19 3 views
2

de Salut les gars j'ai ce code dans mon ViewProductsInventory (qui est appelé de mon MainForm par ShowDialog):événement déclencheur d'une autre forme

Private Sub ViewProductsInventory_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    Me.Tb_inventory_datesTableAdapter.Fill(Me.InventorySysDataSet.tb_inventory_dates) 
    Dim inventory_date As Date 
    inventory_date = Me.cboInventoryDate.Text 

End Sub 


Public Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click 
    Dim inventory_date As String 
    inventory_date = Me.cboInventoryDate.Text 

    'this part populates my datagridview1 
    Me.SP_GetInventoryTableAdapter.Fill(Me.InventorySysDataSet.SP_GetInventory, inventory_date) 
End Sub 

après avoir cliqué sur le editButton exécutera EditForm.ShowDialog()

et dans mon EditForm l'enregistrement sera mis à jour, après quoi se déclenchera ViewProductsInventory.btnSearch_Click(ViewProductsInventory.btnSearch, EventArgs.Empty)

puis l'erreur "Conversion de chaîne" "en type 'Date' n'est pas valide" se produit.

J'ai essayé Msgbox(Me.cboInventoryDate.Text) et ne renvoie rien. Je suppose que mon cboInventoryDate n'est pas rempli à ce moment donc quand btnSearch_Click est déclenché il ne reçoit rien.

comment puis-je résoudre ce problème? veuillez m'aider s'il vous plaît. TIA!

+0

Où est situé cboInventoryDate? MainForm, ViewProductsInventory ou EditForm. Et comment le peuples-tu? –

+0

.Il est situé dans ViewProductsInventory. Il est peuplé par ce> Me.Tb_inventory_datesTableAdapter.Fill (Me.InventorySysDataSet.tb_inventory_dates) – zerey

+0

Combien d'enregistrements sont retournés à votre ComboBox et comment sélectionnez-vous celui que vous voulez? –

Répondre

2

Essayez quelque chose comme ceci dans votre btnSearch_Click événement:

If Me.cboInventoryDate.Items.Count > 0 then 
    Me.cboInventoryDate.SelectedIndex = 0 
    inventory_date = Me.cboInventoryDate.Text 

    'this part populates my datagridview1 
    Me.SP_GetInventoryTableAdapter.Fill(Me.InventorySysDataSet.SP_GetInventory, inventory_date) 

End If  
+0

. Cela ne fonctionnera pas .. cela affectera le comportement naturel du bouton. Supposons que vous cliquiez sur le bouton pour rechercher les enregistrements d'une certaine date, la ligne Me.cboInventoryDate.SelectedIndex = 0 déclenchera une modification de la sélection dans cboInventoryDate, ce qui vous empêchera de sélectionner des dates différentes. – zerey

+0

Oui, vous avez raison. Essayez d'utiliser la méthode Items.Count pour déterminer si le contrôle possède ou non des données. Vous devrez peut-être créer une autre méthode dans votre programme et l'appeler à partir de votre EditForm puis attendre que le ComboBox soit rempli avant d'appeler l'événement Click. –

Questions connexes