Différence entre BD avec tables intégrées / liées ???
2 réponses
Clicnik
Bonjour,
Ma question va paraître bizarre, mais je me casse la tête sur un problème
qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole
P Erlandsen.
Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des
jours variant d'une année à l'autre que j'ai mis dans une table :
Liste_Holliday.
Je vais donc lire la table et mettre chaque enregistrement dans une matrice.
Voici le début du code qui me pose problème
Dim ListeH() As Long
Dim iCpt As Integer
Dim dbs As Database
Dim rstH As Recordset
Set dbs = CurrentDb()
Set rstH = dbs.OpenRecordset("Liste_Holliday")
iCpt = rstH.RecordCount
ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then
rstH.MoveFirst
i = 1
While Not rstH.EOF
ListeH(i) = rstH!Jour
rstH.MoveNext
i = i + 1
Wend
End If
... et puis le suite.
Le problème que j'ai est le suivant :
En ayant la table "Liste_Holliday" dans ma base de données, le programme
passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans
une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme.
Quand la fonction est activée, j'ai une erreur de type "Out of range" :(
En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à
1 alors que j'ai 3 lignes (pour le moment) dans ma table.
Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ?
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere
Bonjour
C'est normal, pour que la valeur retourner par recordcount soit juste, il faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday") rstH.MoveLast iCpt = rstH.RecordCount rst.MoveFirst
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour, Ma question va paraître bizarre, mais je me casse la tête sur un problème qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole P Erlandsen. Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des jours variant d'une année à l'autre que j'ai mis dans une table : Liste_Holliday. Je vais donc lire la table et mettre chaque enregistrement dans une matrice. Voici le début du code qui me pose problème
Dim ListeH() As Long Dim iCpt As Integer Dim dbs As Database Dim rstH As Recordset
Set dbs = CurrentDb() Set rstH = dbs.OpenRecordset("Liste_Holliday") iCpt = rstH.RecordCount ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then rstH.MoveFirst i = 1 While Not rstH.EOF ListeH(i) = rstH!Jour rstH.MoveNext i = i + 1 Wend End If ... et puis le suite.
Le problème que j'ai est le suivant : En ayant la table "Liste_Holliday" dans ma base de données, le programme passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme. Quand la fonction est activée, j'ai une erreur de type "Out of range" :( En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à 1 alors que j'ai 3 lignes (pour le moment) dans ma table. Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ? Merci d'avance
Bonjour
C'est normal, pour que la valeur retourner par recordcount soit juste, il
faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday")
rstH.MoveLast
iCpt = rstH.RecordCount
rst.MoveFirst
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour,
Ma question va paraître bizarre, mais je me casse la tête sur un problème
qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole
P Erlandsen.
Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des
jours variant d'une année à l'autre que j'ai mis dans une table :
Liste_Holliday.
Je vais donc lire la table et mettre chaque enregistrement dans une matrice.
Voici le début du code qui me pose problème
Dim ListeH() As Long
Dim iCpt As Integer
Dim dbs As Database
Dim rstH As Recordset
Set dbs = CurrentDb()
Set rstH = dbs.OpenRecordset("Liste_Holliday")
iCpt = rstH.RecordCount
ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then
rstH.MoveFirst
i = 1
While Not rstH.EOF
ListeH(i) = rstH!Jour
rstH.MoveNext
i = i + 1
Wend
End If
... et puis le suite.
Le problème que j'ai est le suivant :
En ayant la table "Liste_Holliday" dans ma base de données, le programme
passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans
une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme.
Quand la fonction est activée, j'ai une erreur de type "Out of range" :(
En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à
1 alors que j'ai 3 lignes (pour le moment) dans ma table.
Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ?
Merci d'avance
C'est normal, pour que la valeur retourner par recordcount soit juste, il faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday") rstH.MoveLast iCpt = rstH.RecordCount rst.MoveFirst
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour, Ma question va paraître bizarre, mais je me casse la tête sur un problème qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole P Erlandsen. Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des jours variant d'une année à l'autre que j'ai mis dans une table : Liste_Holliday. Je vais donc lire la table et mettre chaque enregistrement dans une matrice. Voici le début du code qui me pose problème
Dim ListeH() As Long Dim iCpt As Integer Dim dbs As Database Dim rstH As Recordset
Set dbs = CurrentDb() Set rstH = dbs.OpenRecordset("Liste_Holliday") iCpt = rstH.RecordCount ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then rstH.MoveFirst i = 1 While Not rstH.EOF ListeH(i) = rstH!Jour rstH.MoveNext i = i + 1 Wend End If ... et puis le suite.
Le problème que j'ai est le suivant : En ayant la table "Liste_Holliday" dans ma base de données, le programme passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme. Quand la fonction est activée, j'ai une erreur de type "Out of range" :( En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à 1 alors que j'ai 3 lignes (pour le moment) dans ma table. Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ? Merci d'avance
Clicnik
Merci Jessy, ça fonctionne impeccablement maintenant ;)
Bonjour
C'est normal, pour que la valeur retourner par recordcount soit juste, il faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday") rstH.MoveLast iCpt = rstH.RecordCount rst.MoveFirst
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour, Ma question va paraître bizarre, mais je me casse la tête sur un problème qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole P Erlandsen. Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des jours variant d'une année à l'autre que j'ai mis dans une table : Liste_Holliday. Je vais donc lire la table et mettre chaque enregistrement dans une matrice. Voici le début du code qui me pose problème
Dim ListeH() As Long Dim iCpt As Integer Dim dbs As Database Dim rstH As Recordset
Set dbs = CurrentDb() Set rstH = dbs.OpenRecordset("Liste_Holliday") iCpt = rstH.RecordCount ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then rstH.MoveFirst i = 1 While Not rstH.EOF ListeH(i) = rstH!Jour rstH.MoveNext i = i + 1 Wend End If ... et puis le suite.
Le problème que j'ai est le suivant : En ayant la table "Liste_Holliday" dans ma base de données, le programme passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme. Quand la fonction est activée, j'ai une erreur de type "Out of range" :( En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à 1 alors que j'ai 3 lignes (pour le moment) dans ma table. Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ? Merci d'avance
Merci Jessy, ça fonctionne impeccablement maintenant ;)
Bonjour
C'est normal, pour que la valeur retourner par recordcount soit juste, il
faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday")
rstH.MoveLast
iCpt = rstH.RecordCount
rst.MoveFirst
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------
Bonjour,
Ma question va paraître bizarre, mais je me casse la tête sur un problème
qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole
P Erlandsen.
Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des
jours variant d'une année à l'autre que j'ai mis dans une table :
Liste_Holliday.
Je vais donc lire la table et mettre chaque enregistrement dans une matrice.
Voici le début du code qui me pose problème
Dim ListeH() As Long
Dim iCpt As Integer
Dim dbs As Database
Dim rstH As Recordset
Set dbs = CurrentDb()
Set rstH = dbs.OpenRecordset("Liste_Holliday")
iCpt = rstH.RecordCount
ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then
rstH.MoveFirst
i = 1
While Not rstH.EOF
ListeH(i) = rstH!Jour
rstH.MoveNext
i = i + 1
Wend
End If
... et puis le suite.
Le problème que j'ai est le suivant :
En ayant la table "Liste_Holliday" dans ma base de données, le programme
passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans
une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme.
Quand la fonction est activée, j'ai une erreur de type "Out of range" :(
En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à
1 alors que j'ai 3 lignes (pour le moment) dans ma table.
Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ?
Merci d'avance
Merci Jessy, ça fonctionne impeccablement maintenant ;)
Bonjour
C'est normal, pour que la valeur retourner par recordcount soit juste, il faut au préalable parcourir le recordset...
Essais de remplacer par :
Set rstH = dbs.OpenRecordset("Liste_Holliday") rstH.MoveLast iCpt = rstH.RecordCount rst.MoveFirst
@+ Jessy Sempere ------------------------------------ Site @ccess : http://access.fr.free.fr/ Pour l''''efficacité de tous : http://www.mpfa.info/ ------------------------------------
Bonjour, Ma question va paraître bizarre, mais je me casse la tête sur un problème qui ne devrait, à priori pas être. Dites-moi si je me trompe.
Je me suis inspiré de la Function IsFerie(Jour As Variant) As Boolean de Ole P Erlandsen. Celle-là étant parfaite pour les jours de congé, je l'ai adapté pour des jours variant d'une année à l'autre que j'ai mis dans une table : Liste_Holliday. Je vais donc lire la table et mettre chaque enregistrement dans une matrice. Voici le début du code qui me pose problème
Dim ListeH() As Long Dim iCpt As Integer Dim dbs As Database Dim rstH As Recordset
Set dbs = CurrentDb() Set rstH = dbs.OpenRecordset("Liste_Holliday") iCpt = rstH.RecordCount ReDim ListeH(iCpt)
... un peu plus loin, j'ai ...
If Not rstH.EOF Then rstH.MoveFirst i = 1 While Not rstH.EOF ListeH(i) = rstH!Jour rstH.MoveNext i = i + 1 Wend End If ... et puis le suite.
Le problème que j'ai est le suivant : En ayant la table "Liste_Holliday" dans ma base de données, le programme passe par cette fonction sans aucun problème :o)
Comme il y aura 2 utilisateurs sur la même BD, j'ai sorti les tables dans une BD à part, et j'ai lié les tables dans ma BD où se trouve le programme. Quand la fonction est activée, j'ai une erreur de type "Out of range" :( En faisant un DEBUG.PRINT, je constate que iCpt et rstH.RecordCount sont à 1 alors que j'ai 3 lignes (pour le moment) dans ma table. Par contre, quand je passe le curseur sur rstH.RecordCount, j'obtiens 3.
Quelqu'un a-t-il une idée du pourquoi ? Merci d'avance