Access et la feuille de données Excel", "Attention !")
Access et la feuille de données Excel", "Attention !"
Bonjour le forum,
J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
un message box.
Voici ce que j'ai écris comme code :
Dim i As Byte
i = "11"
Dim j As Byte
'j = au nombre d'enregistrement dans le dataset !
For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
Then...instructions.....
Else
MessageBox.Show(erreurnom)
End If
Je demande donc que si la cellule B11 est = au contenu du champs
"Nomcomplet" de mon dataset, qu'il exécute les instructions.
Il y'a deux problèmes.
Le premier est que le messagebox apparaît à chaque fois !
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
Je l'ai déclaré de cette façon :
Code :
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
Access et la feuille de données Excel", "Attention !")
En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
car pour moi le premier problème est dû à la déclaration de cette variable
car quand je le met en commentaire, les messagebox n'apparaît pas.
Le second problème est ce message d'erreur :
Citation:
"Cast de la châine "Nomcomplet" en nom integer non valide"
Là, je présûme que c'est un problème de conversion ??
J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
change.
Je vous remercie d'avance pour votre aide.
DD
Access et la feuille de données Excel", "Attention !")
Access et la feuille de données Excel", "Attention !"
Bonjour le forum,
J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
un message box.
Voici ce que j'ai écris comme code :
Dim i As Byte
i = "11"
Dim j As Byte
'j = au nombre d'enregistrement dans le dataset !
For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
Then...instructions.....
Else
MessageBox.Show(erreurnom)
End If
Je demande donc que si la cellule B11 est = au contenu du champs
"Nomcomplet" de mon dataset, qu'il exécute les instructions.
Il y'a deux problèmes.
Le premier est que le messagebox apparaît à chaque fois !
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
Je l'ai déclaré de cette façon :
Code :
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
Access et la feuille de données Excel", "Attention !")
En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
car pour moi le premier problème est dû à la déclaration de cette variable
car quand je le met en commentaire, les messagebox n'apparaît pas.
Le second problème est ce message d'erreur :
Citation:
"Cast de la châine "Nomcomplet" en nom integer non valide"
Là, je présûme que c'est un problème de conversion ??
J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
change.
Je vous remercie d'avance pour votre aide.
DD
Access et la feuille de données Excel", "Attention !")
Access et la feuille de données Excel", "Attention !"
Bonjour le forum,
J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
un message box.
Voici ce que j'ai écris comme code :
Dim i As Byte
i = "11"
Dim j As Byte
'j = au nombre d'enregistrement dans le dataset !
For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
Then...instructions.....
Else
MessageBox.Show(erreurnom)
End If
Je demande donc que si la cellule B11 est = au contenu du champs
"Nomcomplet" de mon dataset, qu'il exécute les instructions.
Il y'a deux problèmes.
Le premier est que le messagebox apparaît à chaque fois !
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
Je l'ai déclaré de cette façon :
Code :
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
Access et la feuille de données Excel", "Attention !")
En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
car pour moi le premier problème est dû à la déclaration de cette variable
car quand je le met en commentaire, les messagebox n'apparaît pas.
Le second problème est ce message d'erreur :
Citation:
"Cast de la châine "Nomcomplet" en nom integer non valide"
Là, je présûme que c'est un problème de conversion ??
J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
change.
Je vous remercie d'avance pour votre aide.
DD
Salut David,
1/ Tu déclares
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
-> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
alors que tu n'as rien fait encore. Déclare plutôt :
Dim erreurnom as String = "Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !"
2/ Tu écris :
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
D'où il sort le dtt, c'est un DataTable ????
Si oui, dtt = dts.Tables("BA2_S1") ?????
Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
voir avec tes problèmes.
A+
--
fmillox
"David" a écrit :
> Bonjour le forum,
>
> J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
>
> J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> un message box.
>
> Voici ce que j'ai écris comme code :
>
> Dim i As Byte
> i = "11"
> Dim j As Byte
> 'j = au nombre d'enregistrement dans le dataset !
> For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> Then...instructions.....
> Else
> MessageBox.Show(erreurnom)
> End If
>
> Je demande donc que si la cellule B11 est = au contenu du champs
> "Nomcomplet" de mon dataset, qu'il exécute les instructions.
>
> Il y'a deux problèmes.
>
> Le premier est que le messagebox apparaît à chaque fois !
>
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> Je l'ai déclaré de cette façon :
>
>
> Code :
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
> En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> car pour moi le premier problème est dû à la déclaration de cette variable
> car quand je le met en commentaire, les messagebox n'apparaît pas.
>
> Le second problème est ce message d'erreur :
>
>
> Citation:
> "Cast de la châine "Nomcomplet" en nom integer non valide"
>
>
> Là, je présûme que c'est un problème de conversion ??
>
> J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> change.
>
> Je vous remercie d'avance pour votre aide.
>
> DD
Salut David,
1/ Tu déclares
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
-> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
alors que tu n'as rien fait encore. Déclare plutôt :
Dim erreurnom as String = "Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !"
2/ Tu écris :
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
D'où il sort le dtt, c'est un DataTable ????
Si oui, dtt = dts.Tables("BA2_S1") ?????
Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
voir avec tes problèmes.
A+
--
fmillox
"David" a écrit :
> Bonjour le forum,
>
> J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
>
> J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> un message box.
>
> Voici ce que j'ai écris comme code :
>
> Dim i As Byte
> i = "11"
> Dim j As Byte
> 'j = au nombre d'enregistrement dans le dataset !
> For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> Then...instructions.....
> Else
> MessageBox.Show(erreurnom)
> End If
>
> Je demande donc que si la cellule B11 est = au contenu du champs
> "Nomcomplet" de mon dataset, qu'il exécute les instructions.
>
> Il y'a deux problèmes.
>
> Le premier est que le messagebox apparaît à chaque fois !
>
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> Je l'ai déclaré de cette façon :
>
>
> Code :
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
> En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> car pour moi le premier problème est dû à la déclaration de cette variable
> car quand je le met en commentaire, les messagebox n'apparaît pas.
>
> Le second problème est ce message d'erreur :
>
>
> Citation:
> "Cast de la châine "Nomcomplet" en nom integer non valide"
>
>
> Là, je présûme que c'est un problème de conversion ??
>
> J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> change.
>
> Je vous remercie d'avance pour votre aide.
>
> DD
Salut David,
1/ Tu déclares
Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
-> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
alors que tu n'as rien fait encore. Déclare plutôt :
Dim erreurnom as String = "Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !"
2/ Tu écris :
If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
D'où il sort le dtt, c'est un DataTable ????
Si oui, dtt = dts.Tables("BA2_S1") ?????
Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
voir avec tes problèmes.
A+
--
fmillox
"David" a écrit :
> Bonjour le forum,
>
> J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
>
> J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> un message box.
>
> Voici ce que j'ai écris comme code :
>
> Dim i As Byte
> i = "11"
> Dim j As Byte
> 'j = au nombre d'enregistrement dans le dataset !
> For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> Then...instructions.....
> Else
> MessageBox.Show(erreurnom)
> End If
>
> Je demande donc que si la cellule B11 est = au contenu du champs
> "Nomcomplet" de mon dataset, qu'il exécute les instructions.
>
> Il y'a deux problèmes.
>
> Le premier est que le messagebox apparaît à chaque fois !
>
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> Je l'ai déclaré de cette façon :
>
>
> Code :
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> Access et la feuille de données Excel", "Attention !")
> En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> car pour moi le premier problème est dû à la déclaration de cette variable
> car quand je le met en commentaire, les messagebox n'apparaît pas.
>
> Le second problème est ce message d'erreur :
>
>
> Citation:
> "Cast de la châine "Nomcomplet" en nom integer non valide"
>
>
> Là, je présûme que c'est un problème de conversion ??
>
> J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> change.
>
> Je vous remercie d'avance pour votre aide.
>
> DD
Salut Frédéric,
Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
rencontre beaucoup de difficultés.
Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
Par contre pour le second problème, j'avance mais j'ai toujours un souci :
rownum correspond à l'enregistrement actif de la datatable du dataset :
En mettant cette ligne de code :
If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
2") Then
instructions....
else
MessageBox.Show("Les informations entre Excel et Access sont différentes",
"Attention")
Exit Sub
End If
Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
identiquement le même.
Est-ce que tu comprends quelque chose à cela ?
J'espère que tu pourras encore m'aider.
Merci sincèrement pour tout.
David
"Millox Frédéric" wrote:
> Salut David,
>
> 1/ Tu déclares
>
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> alors que tu n'as rien fait encore. Déclare plutôt :
> Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !"
>
> 2/ Tu écris :
>
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
>
> D'où il sort le dtt, c'est un DataTable ????
> Si oui, dtt = dts.Tables("BA2_S1") ?????
> Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
>
> Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> voir avec tes problèmes.
>
> A+
>
> --
> fmillox
>
>
> "David" a écrit :
>
> > Bonjour le forum,
> >
> > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> >
> > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > un message box.
> >
> > Voici ce que j'ai écris comme code :
> >
> > Dim i As Byte
> > i = "11"
> > Dim j As Byte
> > 'j = au nombre d'enregistrement dans le dataset !
> > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > Then...instructions.....
> > Else
> > MessageBox.Show(erreurnom)
> > End If
> >
> > Je demande donc que si la cellule B11 est = au contenu du champs
> > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> >
> > Il y'a deux problèmes.
> >
> > Le premier est que le messagebox apparaît à chaque fois !
> >
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > Je l'ai déclaré de cette façon :
> >
> >
> > Code :
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > car pour moi le premier problème est dû à la déclaration de cette variable
> > car quand je le met en commentaire, les messagebox n'apparaît pas.
> >
> > Le second problème est ce message d'erreur :
> >
> >
> > Citation:
> > "Cast de la châine "Nomcomplet" en nom integer non valide"
> >
> >
> > Là, je présûme que c'est un problème de conversion ??
> >
> > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > change.
> >
> > Je vous remercie d'avance pour votre aide.
> >
> > DD
Salut Frédéric,
Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
rencontre beaucoup de difficultés.
Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
Par contre pour le second problème, j'avance mais j'ai toujours un souci :
rownum correspond à l'enregistrement actif de la datatable du dataset :
En mettant cette ligne de code :
If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
2") Then
instructions....
else
MessageBox.Show("Les informations entre Excel et Access sont différentes",
"Attention")
Exit Sub
End If
Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
identiquement le même.
Est-ce que tu comprends quelque chose à cela ?
J'espère que tu pourras encore m'aider.
Merci sincèrement pour tout.
David
"Millox Frédéric" wrote:
> Salut David,
>
> 1/ Tu déclares
>
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> alors que tu n'as rien fait encore. Déclare plutôt :
> Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !"
>
> 2/ Tu écris :
>
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
>
> D'où il sort le dtt, c'est un DataTable ????
> Si oui, dtt = dts.Tables("BA2_S1") ?????
> Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
>
> Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> voir avec tes problèmes.
>
> A+
>
> --
> fmillox
>
>
> "David" a écrit :
>
> > Bonjour le forum,
> >
> > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> >
> > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > un message box.
> >
> > Voici ce que j'ai écris comme code :
> >
> > Dim i As Byte
> > i = "11"
> > Dim j As Byte
> > 'j = au nombre d'enregistrement dans le dataset !
> > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > Then...instructions.....
> > Else
> > MessageBox.Show(erreurnom)
> > End If
> >
> > Je demande donc que si la cellule B11 est = au contenu du champs
> > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> >
> > Il y'a deux problèmes.
> >
> > Le premier est que le messagebox apparaît à chaque fois !
> >
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > Je l'ai déclaré de cette façon :
> >
> >
> > Code :
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > car pour moi le premier problème est dû à la déclaration de cette variable
> > car quand je le met en commentaire, les messagebox n'apparaît pas.
> >
> > Le second problème est ce message d'erreur :
> >
> >
> > Citation:
> > "Cast de la châine "Nomcomplet" en nom integer non valide"
> >
> >
> > Là, je présûme que c'est un problème de conversion ??
> >
> > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > change.
> >
> > Je vous remercie d'avance pour votre aide.
> >
> > DD
Salut Frédéric,
Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
rencontre beaucoup de difficultés.
Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
Par contre pour le second problème, j'avance mais j'ai toujours un souci :
rownum correspond à l'enregistrement actif de la datatable du dataset :
En mettant cette ligne de code :
If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
2") Then
instructions....
else
MessageBox.Show("Les informations entre Excel et Access sont différentes",
"Attention")
Exit Sub
End If
Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
identiquement le même.
Est-ce que tu comprends quelque chose à cela ?
J'espère que tu pourras encore m'aider.
Merci sincèrement pour tout.
David
"Millox Frédéric" wrote:
> Salut David,
>
> 1/ Tu déclares
>
> Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
>
> -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> alors que tu n'as rien fait encore. Déclare plutôt :
> Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !"
>
> 2/ Tu écris :
>
> If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
>
> D'où il sort le dtt, c'est un DataTable ????
> Si oui, dtt = dts.Tables("BA2_S1") ?????
> Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
>
> Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> voir avec tes problèmes.
>
> A+
>
> --
> fmillox
>
>
> "David" a écrit :
>
> > Bonjour le forum,
> >
> > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> >
> > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > un message box.
> >
> > Voici ce que j'ai écris comme code :
> >
> > Dim i As Byte
> > i = "11"
> > Dim j As Byte
> > 'j = au nombre d'enregistrement dans le dataset !
> > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > Then...instructions.....
> > Else
> > MessageBox.Show(erreurnom)
> > End If
> >
> > Je demande donc que si la cellule B11 est = au contenu du champs
> > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> >
> > Il y'a deux problèmes.
> >
> > Le premier est que le messagebox apparaît à chaque fois !
> >
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > Je l'ai déclaré de cette façon :
> >
> >
> > Code :
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > Access et la feuille de données Excel", "Attention !")
> > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > car pour moi le premier problème est dû à la déclaration de cette variable
> > car quand je le met en commentaire, les messagebox n'apparaît pas.
> >
> > Le second problème est ce message d'erreur :
> >
> >
> > Citation:
> > "Cast de la châine "Nomcomplet" en nom integer non valide"
> >
> >
> > Là, je présûme que c'est un problème de conversion ??
> >
> > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > change.
> >
> > Je vous remercie d'avance pour votre aide.
> >
> > DD
Salut David,
La dernière fois, je n'ai pas assez regardé ton code ( je n'ai fait que
répondre à tes questions ).
1/ L'opérateur Is n'est à utiliser que pour tester si c'est une constante.
ex: If ex Is Nothing Then -> permet de tester si ex contient la cste Nothing
( dans le cas où ex est un objet classique, cela veut dire que la var ex n'a
pas été instanciée (pas de New)).
If str Is String.Empty Then ... -> permet de tester si la var str contient
la cste String.Empty.......etc.....
2/ Donc l'opérateur Is n'est pas bien utilisé ici. Si je comprends bien,
dtt.Rows(rownum).Item("Nomcomplet") contient un String d'après le nom de
l'item("Nomcomplet"). Donc si tu veux faire propre comme code, il vaut mieux
écrire :
If dtt.Rows(rownum).Item("Nomcomplet").ToString.Equals(appexcel.Cells(i, "
2").ToString) Then ....
3/ Si après ça, tes données ne sont toujours pas égales, affiche les avec un
petit Console.WriteLine(dtt.Rows(rownum).Item("Nomcomplet").ToString) et
Console.WriteLine(appexcel.Cells(i, " 2").ToString) pour vérifier si tu
pointes au bon endroit.
Voilà.....
A+
--
fmillox
"David" a écrit :
> Salut Frédéric,
>
> Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
>
> Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
> rencontre beaucoup de difficultés.
>
> Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
>
> Par contre pour le second problème, j'avance mais j'ai toujours un souci :
>
> rownum correspond à l'enregistrement actif de la datatable du dataset :
>
> En mettant cette ligne de code :
>
> If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
> 2") Then
> instructions....
>
> else
>
> MessageBox.Show("Les informations entre Excel et Access sont différentes",
> "Attention")
> Exit Sub
> End If
>
> Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
> du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
> identiquement le même.
>
> Est-ce que tu comprends quelque chose à cela ?
>
> J'espère que tu pourras encore m'aider.
>
> Merci sincèrement pour tout.
>
> David
>
> "Millox Frédéric" wrote:
>
> > Salut David,
> >
> > 1/ Tu déclares
> >
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> > alors que tu n'as rien fait encore. Déclare plutôt :
> > Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !"
> >
> > 2/ Tu écris :
> >
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> >
> > D'où il sort le dtt, c'est un DataTable ????
> > Si oui, dtt = dts.Tables("BA2_S1") ?????
> > Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> > ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
> >
> > Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> > voir avec tes problèmes.
> >
> > A+
> >
> > --
> > fmillox
> >
> >
> > "David" a écrit :
> >
> > > Bonjour le forum,
> > >
> > > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> > >
> > > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > > un message box.
> > >
> > > Voici ce que j'ai écris comme code :
> > >
> > > Dim i As Byte
> > > i = "11"
> > > Dim j As Byte
> > > 'j = au nombre d'enregistrement dans le dataset !
> > > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > > Then...instructions.....
> > > Else
> > > MessageBox.Show(erreurnom)
> > > End If
> > >
> > > Je demande donc que si la cellule B11 est = au contenu du champs
> > > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> > >
> > > Il y'a deux problèmes.
> > >
> > > Le premier est que le messagebox apparaît à chaque fois !
> > >
> > > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> > >
> > > Je l'ai déclaré de cette façon :
> > >
> > >
> > > Code :
> > > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > > car pour moi le premier problème est dû à la déclaration de cette variable
> > > car quand je le met en commentaire, les messagebox n'apparaît pas.
> > >
> > > Le second problème est ce message d'erreur :
> > >
> > >
> > > Citation:
> > > "Cast de la châine "Nomcomplet" en nom integer non valide"
> > >
> > >
> > > Là, je présûme que c'est un problème de conversion ??
> > >
> > > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > > change.
> > >
> > > Je vous remercie d'avance pour votre aide.
> > >
> > > DD
Salut David,
La dernière fois, je n'ai pas assez regardé ton code ( je n'ai fait que
répondre à tes questions ).
1/ L'opérateur Is n'est à utiliser que pour tester si c'est une constante.
ex: If ex Is Nothing Then -> permet de tester si ex contient la cste Nothing
( dans le cas où ex est un objet classique, cela veut dire que la var ex n'a
pas été instanciée (pas de New)).
If str Is String.Empty Then ... -> permet de tester si la var str contient
la cste String.Empty.......etc.....
2/ Donc l'opérateur Is n'est pas bien utilisé ici. Si je comprends bien,
dtt.Rows(rownum).Item("Nomcomplet") contient un String d'après le nom de
l'item("Nomcomplet"). Donc si tu veux faire propre comme code, il vaut mieux
écrire :
If dtt.Rows(rownum).Item("Nomcomplet").ToString.Equals(appexcel.Cells(i, "
2").ToString) Then ....
3/ Si après ça, tes données ne sont toujours pas égales, affiche les avec un
petit Console.WriteLine(dtt.Rows(rownum).Item("Nomcomplet").ToString) et
Console.WriteLine(appexcel.Cells(i, " 2").ToString) pour vérifier si tu
pointes au bon endroit.
Voilà.....
A+
--
fmillox
"David" a écrit :
> Salut Frédéric,
>
> Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
>
> Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
> rencontre beaucoup de difficultés.
>
> Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
>
> Par contre pour le second problème, j'avance mais j'ai toujours un souci :
>
> rownum correspond à l'enregistrement actif de la datatable du dataset :
>
> En mettant cette ligne de code :
>
> If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
> 2") Then
> instructions....
>
> else
>
> MessageBox.Show("Les informations entre Excel et Access sont différentes",
> "Attention")
> Exit Sub
> End If
>
> Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
> du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
> identiquement le même.
>
> Est-ce que tu comprends quelque chose à cela ?
>
> J'espère que tu pourras encore m'aider.
>
> Merci sincèrement pour tout.
>
> David
>
> "Millox Frédéric" wrote:
>
> > Salut David,
> >
> > 1/ Tu déclares
> >
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> > alors que tu n'as rien fait encore. Déclare plutôt :
> > Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !"
> >
> > 2/ Tu écris :
> >
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> >
> > D'où il sort le dtt, c'est un DataTable ????
> > Si oui, dtt = dts.Tables("BA2_S1") ?????
> > Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> > ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
> >
> > Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> > voir avec tes problèmes.
> >
> > A+
> >
> > --
> > fmillox
> >
> >
> > "David" a écrit :
> >
> > > Bonjour le forum,
> > >
> > > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> > >
> > > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > > un message box.
> > >
> > > Voici ce que j'ai écris comme code :
> > >
> > > Dim i As Byte
> > > i = "11"
> > > Dim j As Byte
> > > 'j = au nombre d'enregistrement dans le dataset !
> > > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > > Then...instructions.....
> > > Else
> > > MessageBox.Show(erreurnom)
> > > End If
> > >
> > > Je demande donc que si la cellule B11 est = au contenu du champs
> > > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> > >
> > > Il y'a deux problèmes.
> > >
> > > Le premier est que le messagebox apparaît à chaque fois !
> > >
> > > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> > >
> > > Je l'ai déclaré de cette façon :
> > >
> > >
> > > Code :
> > > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > > car pour moi le premier problème est dû à la déclaration de cette variable
> > > car quand je le met en commentaire, les messagebox n'apparaît pas.
> > >
> > > Le second problème est ce message d'erreur :
> > >
> > >
> > > Citation:
> > > "Cast de la châine "Nomcomplet" en nom integer non valide"
> > >
> > >
> > > Là, je présûme que c'est un problème de conversion ??
> > >
> > > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > > change.
> > >
> > > Je vous remercie d'avance pour votre aide.
> > >
> > > DD
Salut David,
La dernière fois, je n'ai pas assez regardé ton code ( je n'ai fait que
répondre à tes questions ).
1/ L'opérateur Is n'est à utiliser que pour tester si c'est une constante.
ex: If ex Is Nothing Then -> permet de tester si ex contient la cste Nothing
( dans le cas où ex est un objet classique, cela veut dire que la var ex n'a
pas été instanciée (pas de New)).
If str Is String.Empty Then ... -> permet de tester si la var str contient
la cste String.Empty.......etc.....
2/ Donc l'opérateur Is n'est pas bien utilisé ici. Si je comprends bien,
dtt.Rows(rownum).Item("Nomcomplet") contient un String d'après le nom de
l'item("Nomcomplet"). Donc si tu veux faire propre comme code, il vaut mieux
écrire :
If dtt.Rows(rownum).Item("Nomcomplet").ToString.Equals(appexcel.Cells(i, "
2").ToString) Then ....
3/ Si après ça, tes données ne sont toujours pas égales, affiche les avec un
petit Console.WriteLine(dtt.Rows(rownum).Item("Nomcomplet").ToString) et
Console.WriteLine(appexcel.Cells(i, " 2").ToString) pour vérifier si tu
pointes au bon endroit.
Voilà.....
A+
--
fmillox
"David" a écrit :
> Salut Frédéric,
>
> Merci pour ta réponse qui crois moi, est vraiment précieuse pour moi.
>
> Je programme en VB.NET que depuis quelques semaines, c'est pourquoi je
> rencontre beaucoup de difficultés.
>
> Merci pour l'info sur le messagebox, je le saurai pour la prochaine fois.
>
> Par contre pour le second problème, j'avance mais j'ai toujours un souci :
>
> rownum correspond à l'enregistrement actif de la datatable du dataset :
>
> En mettant cette ligne de code :
>
> If dtt.Rows(rownum).Item("Nomcomplet") Is appexcel.Cells(i, "
> 2") Then
> instructions....
>
> else
>
> MessageBox.Show("Les informations entre Excel et Access sont différentes",
> "Attention")
> Exit Sub
> End If
>
> Il lance le messagebox et il se dit donc que la valeur dans l'enregistrement
> du dtt n'est pas identique à la cellule 11,2 de Excel alors que c'est
> identiquement le même.
>
> Est-ce que tu comprends quelque chose à cela ?
>
> J'espère que tu pourras encore m'aider.
>
> Merci sincèrement pour tout.
>
> David
>
> "Millox Frédéric" wrote:
>
> > Salut David,
> >
> > 1/ Tu déclares
> >
> > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> >
> > -> Logique tu initialises erreurnom par un MessageBox, donc il s'affiche
> > alors que tu n'as rien fait encore. Déclare plutôt :
> > Dim erreurnom as String = "Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !"
> >
> > 2/ Tu écris :
> >
> > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> >
> > D'où il sort le dtt, c'est un DataTable ????
> > Si oui, dtt = dts.Tables("BA2_S1") ?????
> > Sinon quand tu marques dtt.Rows.Item("Nomcomplet"), tu ne selectionne pas la
> > ligne... Je pense que tu voulez faire plutôt : dtt.Rows(j).Item("Nomcomplet")
> >
> > Voilà, je ne sais pas trop si ça va t'aider ou si mes réponses n'ont rien à
> > voir avec tes problèmes.
> >
> > A+
> >
> > --
> > fmillox
> >
> >
> > "David" a écrit :
> >
> > > Bonjour le forum,
> > >
> > > J'utlise un dataset qui me permet de transférer toutes mes données vers Excel.
> > >
> > > J'aurai aimé comparer un champs de mon dataset avec une cellule Excel, si
> > > c'est la même, c'est OK, il fait ce que je lui demande autrement il m'envoi
> > > un message box.
> > >
> > > Voici ce que j'ai écris comme code :
> > >
> > > Dim i As Byte
> > > i = "11"
> > > Dim j As Byte
> > > 'j = au nombre d'enregistrement dans le dataset !
> > > For j = 0 To dts.Tables("BA2_S1").Rows.Count - 1
> > > If appexcel.Cells(i, "2") Is dtt.Rows.Item("Nomcomplet")
> > > Then...instructions.....
> > > Else
> > > MessageBox.Show(erreurnom)
> > > End If
> > >
> > > Je demande donc que si la cellule B11 est = au contenu du champs
> > > "Nomcomplet" de mon dataset, qu'il exécute les instructions.
> > >
> > > Il y'a deux problèmes.
> > >
> > > Le premier est que le messagebox apparaît à chaque fois !
> > >
> > > Dès le clic sur le bouton, même avant d'arriver sur le if, il se lance.
> > >
> > > Je l'ai déclaré de cette façon :
> > >
> > >
> > > Code :
> > > Dim erreurnom = MessageBox.Show("Il y'a une différence de nom entre la table
> > > Access et la feuille de données Excel", "Attention !")
> > > En VBA, c'est comme ça que je le déclarais, ça doit être différent en VB.NET
> > > car pour moi le premier problème est dû à la déclaration de cette variable
> > > car quand je le met en commentaire, les messagebox n'apparaît pas.
> > >
> > > Le second problème est ce message d'erreur :
> > >
> > >
> > > Citation:
> > > "Cast de la châine "Nomcomplet" en nom integer non valide"
> > >
> > >
> > > Là, je présûme que c'est un problème de conversion ??
> > >
> > > J'ai essayé de changer mon Dim i as byte en Dim i as integer mais rien n'y
> > > change.
> > >
> > > Je vous remercie d'avance pour votre aide.
> > >
> > > DD