Probleme de code sous VBA

Le
Audrey
Bonjour,

voil j'ai un code visual basic qui fonctionne trs bien,
je l'ai ensuite "adapt" en VBA, ety la il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
dcalage de 30 80 secondes.
Je m'explique, ce code vise raliser des acquisitions de
donnes, en VB l'acquisition se fait en temps rel, alors
qu'en VBA l'acquisition se fait bien mais avec un
dcalage, donc quand je mesure une pile je n'ai la mesure
que 30 80 secondes plus tard c'est un peu gnant

Qui pourrait me dire d'o a peux venir
Merci
Audrey
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre CFI [mvp]
Le #5044071
bonjour
oui, mais il faidrait plus de détails sur ce code et le contexte :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions de
données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey
Audrey
Le #5044051
Oui je m'en doute mais je ne sais pas trop ce qui pourrait
vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions de
données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.



Pierre CFI [mvp]
Le #5044001
.../...
tu parles de vb, tu as donc aussi une appli en vb6 ? quelques opérations tu executes ? en gros c'est quoi ton appli ? elle fait quoi
et ou ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" Oui je m'en doute mais je ne sais pas trop ce qui pourrait
vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions de
données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.



Le #5043981
Alors oui j'ai du code VB donc une application en VB6
Alors cette appli réalise, grace à une carte, des
acquisitions elle comporte un bouton start un stop, et
deux zones d'affichage, une au sujet des buffers, et
l'autres rapporte la mesure en volt
le code est le suivant:
Const lBoardNum& = 0 ' Board number as
specified in the adlib.con file

Private Sub cmdStartConvert_Click()

cmdStartConvert.Visible = 0
cmdStopConvert.Visible = 1
cmdStopConvert.Default = 1
tmrConvert.ENABLED = 0

errnum& = AL_StartDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StartDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

tmrConvert.ENABLED = 1

End Sub

Private Sub cmdStopConvert_Click()

cmdStartConvert.Visible = 1
cmdStopConvert.Visible = 0

tmrConvert.ENABLED = 0
errnum& = AL_StopDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StopDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Load()

errnum& = AL_LoadEnvironment
("C:AdlibAlWdmDriversPci55mfhrEXAMPLESPci5500
vbasicadlib.con")
If errnum& < 0 Then
MsgBox "AL_LoadEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

gblLhld& = AL_AllocateDevice("ADC0", BoardNum&)
If gblLhld& < 0 Then
MsgBox "AL_AllocateDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_InitDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_InitDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

tmrConvert.ENABLED = 0

errnum& = AL_StopDevice(gblLhld&)
errnum& = AL_ReleaseDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_ReleaseDevice Error", MB_ICONSTOP, "ADLIB
Error"
End If
errnum& = AL_ReleaseEnvironment()
If errnum& < 0 Then
MsgBox "AL_ReleaseEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
End If

End

End Sub




Private Sub tmrConvert_Timer()

' Collect the data and display

errnum& = AL_GetBufferStatus(gblLhld&, lpDataBuffStat,
DONE_BUFFER)
If errnum& = 1 Then 'The buffer is avaliable
' Check the status and error flags
If lpDataBuffStat.lStatusFlags <> BUFFER_FULL Then
Msg = "Incomplete Buffer Status = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox Msg, MB_ICONSTOP, "ADLIB Buffer Status"
Form_Unload (1)
End If
If lpDataBuffStat.lErrorFlags <> 0 Then
Msg = "Buffer Error = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox "Buffer Error", MB_ICONSTOP, "ADLIB Buffer
Error"
Form_Unload (1)
End If

errnum& = AL_CopyBuffer(gblLhld&,
lpDataBuffStat.lBuffNum, DataBuff(0), 0, 100)
If errnum& < 0 Then
MsgBox "AL_CopyBuffer Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If
errnum& = AL_DemuxDataSet(gblLhld&,
lpDataBuffStat.lBuffNum, EngUnits(0), 0, 1)
If errnum& < 0 Then
MsgBox "AL_DemuxDataSet Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_ClearBufferDoneFlag(gblLhld&,
lpDataBuffStat.lBuffNum)
If errnum& < 0 Then
MsgBox "AL_ClearBufferDoneFlag Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If
lblShowData.Caption = Format$(DataBuff(0), "0") '
print the counts
'lblShowVolts.Caption = Format$(EngUnits(0), "0.000")
+ " Volts" ' print the voltage
lblShowVolts.Caption = EngUnits(0)
ElseIf errnum& < 0 Then 'An error occured in the
AL_GetBufferStatus function call
MsgBox "AL_GetBufferStatus Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

End Sub

Que dire de plus...
je ne sais pas trop

Si j'ai une question est ce que je peux rajouter a ce code
une commande me permettant d'enregistrer ce qui défile
dans la zone d'affichage des vols??

Merci beaucoup

Audrey
-----Message d'origine-----
..../...
tu parles de vb, tu as donc aussi une appli en vb6 ?
quelques opérations tu executes ? en gros c'est quoi ton

appli ? elle fait quoi
et ou ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:182901c426dc$8979ad90

$
Oui je m'en doute mais je ne sais pas trop ce qui pourrait
vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions
de


données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.




.




Pierre CFI [mvp]
Le #5043901
je suis désolé mais j'ai du mal à cerner le probléme, je passe la main :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
Alors oui j'ai du code VB donc une application en VB6
Alors cette appli réalise, grace à une carte, des
acquisitions elle comporte un bouton start un stop, et
deux zones d'affichage, une au sujet des buffers, et
l'autres rapporte la mesure en volt
le code est le suivant:
Const lBoardNum& = 0 ' Board number as
specified in the adlib.con file

Private Sub cmdStartConvert_Click()

cmdStartConvert.Visible = 0
cmdStopConvert.Visible = 1
cmdStopConvert.Default = 1
tmrConvert.ENABLED = 0

errnum& = AL_StartDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StartDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

tmrConvert.ENABLED = 1

End Sub

Private Sub cmdStopConvert_Click()

cmdStartConvert.Visible = 1
cmdStopConvert.Visible = 0

tmrConvert.ENABLED = 0
errnum& = AL_StopDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StopDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Load()

errnum& = AL_LoadEnvironment
("C:AdlibAlWdmDriversPci55mfhrEXAMPLESPci5500
vbasicadlib.con")
If errnum& < 0 Then
MsgBox "AL_LoadEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

gblLhld& = AL_AllocateDevice("ADC0", BoardNum&)
If gblLhld& < 0 Then
MsgBox "AL_AllocateDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_InitDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_InitDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

tmrConvert.ENABLED = 0

errnum& = AL_StopDevice(gblLhld&)
errnum& = AL_ReleaseDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_ReleaseDevice Error", MB_ICONSTOP, "ADLIB
Error"
End If
errnum& = AL_ReleaseEnvironment()
If errnum& < 0 Then
MsgBox "AL_ReleaseEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
End If

End

End Sub




Private Sub tmrConvert_Timer()

' Collect the data and display

errnum& = AL_GetBufferStatus(gblLhld&, lpDataBuffStat,
DONE_BUFFER)
If errnum& = 1 Then 'The buffer is avaliable
' Check the status and error flags
If lpDataBuffStat.lStatusFlags <> BUFFER_FULL Then
Msg = "Incomplete Buffer Status = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox Msg, MB_ICONSTOP, "ADLIB Buffer Status"
Form_Unload (1)
End If
If lpDataBuffStat.lErrorFlags <> 0 Then
Msg = "Buffer Error = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox "Buffer Error", MB_ICONSTOP, "ADLIB Buffer
Error"
Form_Unload (1)
End If

errnum& = AL_CopyBuffer(gblLhld&,
lpDataBuffStat.lBuffNum, DataBuff(0), 0, 100)
If errnum& < 0 Then
MsgBox "AL_CopyBuffer Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If
errnum& = AL_DemuxDataSet(gblLhld&,
lpDataBuffStat.lBuffNum, EngUnits(0), 0, 1)
If errnum& < 0 Then
MsgBox "AL_DemuxDataSet Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_ClearBufferDoneFlag(gblLhld&,
lpDataBuffStat.lBuffNum)
If errnum& < 0 Then
MsgBox "AL_ClearBufferDoneFlag Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If
lblShowData.Caption = Format$(DataBuff(0), "0") '
print the counts
'lblShowVolts.Caption = Format$(EngUnits(0), "0.000")
+ " Volts" ' print the voltage
lblShowVolts.Caption = EngUnits(0)
ElseIf errnum& < 0 Then 'An error occured in the
AL_GetBufferStatus function call
MsgBox "AL_GetBufferStatus Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

End Sub

Que dire de plus...
je ne sais pas trop

Si j'ai une question est ce que je peux rajouter a ce code
une commande me permettant d'enregistrer ce qui défile
dans la zone d'affichage des vols??

Merci beaucoup

Audrey
-----Message d'origine-----
..../...
tu parles de vb, tu as donc aussi une appli en vb6 ?
quelques opérations tu executes ? en gros c'est quoi ton

appli ? elle fait quoi
et ou ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:182901c426dc$8979ad90

$
Oui je m'en doute mais je ne sais pas trop ce qui pourrait
vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions
de


données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.




.




Le #5043781
Tant pis
Merci quand même

Audrey


-----Message d'origine-----
je suis désolé mais j'ai du mal à cerner le probléme, je
passe la main :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
message de news:197501c426e0$ee8b1a80$

Alors oui j'ai du code VB donc une application en VB6
Alors cette appli réalise, grace à une carte, des
acquisitions elle comporte un bouton start un stop, et
deux zones d'affichage, une au sujet des buffers, et
l'autres rapporte la mesure en volt
le code est le suivant:
Const lBoardNum& = 0 ' Board number as
specified in the adlib.con file

Private Sub cmdStartConvert_Click()

cmdStartConvert.Visible = 0
cmdStopConvert.Visible = 1
cmdStopConvert.Default = 1
tmrConvert.ENABLED = 0

errnum& = AL_StartDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StartDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

tmrConvert.ENABLED = 1

End Sub

Private Sub cmdStopConvert_Click()

cmdStartConvert.Visible = 1
cmdStopConvert.Visible = 0

tmrConvert.ENABLED = 0
errnum& = AL_StopDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StopDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Load()

errnum& = AL_LoadEnvironment
("C:AdlibAlWdmDriversPci55mfhrEXAMPLESPci5500
vbasicadlib.con")
If errnum& < 0 Then
MsgBox "AL_LoadEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

gblLhld& = AL_AllocateDevice("ADC0", BoardNum&)
If gblLhld& < 0 Then
MsgBox "AL_AllocateDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_InitDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_InitDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

tmrConvert.ENABLED = 0

errnum& = AL_StopDevice(gblLhld&)
errnum& = AL_ReleaseDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_ReleaseDevice Error", MB_ICONSTOP, "ADLIB
Error"
End If
errnum& = AL_ReleaseEnvironment()
If errnum& < 0 Then
MsgBox "AL_ReleaseEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
End If

End

End Sub




Private Sub tmrConvert_Timer()

' Collect the data and display

errnum& = AL_GetBufferStatus(gblLhld&, lpDataBuffStat,
DONE_BUFFER)
If errnum& = 1 Then 'The buffer is avaliable
' Check the status and error flags
If lpDataBuffStat.lStatusFlags <> BUFFER_FULL Then
Msg = "Incomplete Buffer Status = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox Msg, MB_ICONSTOP, "ADLIB Buffer Status"
Form_Unload (1)
End If
If lpDataBuffStat.lErrorFlags <> 0 Then
Msg = "Buffer Error = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox "Buffer Error", MB_ICONSTOP, "ADLIB Buffer
Error"
Form_Unload (1)
End If

errnum& = AL_CopyBuffer(gblLhld&,
lpDataBuffStat.lBuffNum, DataBuff(0), 0, 100)
If errnum& < 0 Then
MsgBox "AL_CopyBuffer Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If
errnum& = AL_DemuxDataSet(gblLhld&,
lpDataBuffStat.lBuffNum, EngUnits(0), 0, 1)
If errnum& < 0 Then
MsgBox "AL_DemuxDataSet Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_ClearBufferDoneFlag(gblLhld&,
lpDataBuffStat.lBuffNum)
If errnum& < 0 Then
MsgBox "AL_ClearBufferDoneFlag Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If
lblShowData.Caption = Format$(DataBuff(0), "0") '
print the counts
'lblShowVolts.Caption = Format$(EngUnits(0), "0.000")
+ " Volts" ' print the voltage
lblShowVolts.Caption = EngUnits(0)
ElseIf errnum& < 0 Then 'An error occured in the
AL_GetBufferStatus function call
MsgBox "AL_GetBufferStatus Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

End Sub

Que dire de plus...
je ne sais pas trop

Si j'ai une question est ce que je peux rajouter a ce code
une commande me permettant d'enregistrer ce qui défile
dans la zone d'affichage des vols??

Merci beaucoup

Audrey
-----Message d'origine-----
..../...
tu parles de vb, tu as donc aussi une appli en vb6 ?
quelques opérations tu executes ? en gros c'est quoi ton

appli ? elle fait quoi
et ou ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:182901c426dc$8979ad90

$
Oui je m'en doute mais je ne sais pas trop ce qui
pourrait


vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très
bien,



je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions
de


données, en VB l'acquisition se fait en temps réel,
alors



qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la
mesure



que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.




.




.





Buddy
Le #5043541
Salut
quelle version d'access tu utilises ?

Buddy

news:193801c426ea$5ab30160$
Tant pis
Merci quand même

Audrey


-----Message d'origine-----
je suis désolé mais j'ai du mal à cerner le probléme, je
passe la main :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
message de news:197501c426e0$ee8b1a80$

Alors oui j'ai du code VB donc une application en VB6
Alors cette appli réalise, grace à une carte, des
acquisitions elle comporte un bouton start un stop, et
deux zones d'affichage, une au sujet des buffers, et
l'autres rapporte la mesure en volt
le code est le suivant:
Const lBoardNum& = 0 ' Board number as
specified in the adlib.con file

Private Sub cmdStartConvert_Click()

cmdStartConvert.Visible = 0
cmdStopConvert.Visible = 1
cmdStopConvert.Default = 1
tmrConvert.ENABLED = 0

errnum& = AL_StartDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StartDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

tmrConvert.ENABLED = 1

End Sub

Private Sub cmdStopConvert_Click()

cmdStartConvert.Visible = 1
cmdStopConvert.Visible = 0

tmrConvert.ENABLED = 0
errnum& = AL_StopDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_StopDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Load()

errnum& = AL_LoadEnvironment
("C:AdlibAlWdmDriversPci55mfhrEXAMPLESPci5500
vbasicadlib.con")
If errnum& < 0 Then
MsgBox "AL_LoadEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

gblLhld& = AL_AllocateDevice("ADC0", BoardNum&)
If gblLhld& < 0 Then
MsgBox "AL_AllocateDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_InitDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_InitDevice Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

tmrConvert.ENABLED = 0

errnum& = AL_StopDevice(gblLhld&)
errnum& = AL_ReleaseDevice(gblLhld&)
If errnum& < 0 Then
MsgBox "AL_ReleaseDevice Error", MB_ICONSTOP, "ADLIB
Error"
End If
errnum& = AL_ReleaseEnvironment()
If errnum& < 0 Then
MsgBox "AL_ReleaseEnvironment Error",
MB_ICONSTOP, "ADLIB Error"
End If

End

End Sub




Private Sub tmrConvert_Timer()

' Collect the data and display

errnum& = AL_GetBufferStatus(gblLhld&, lpDataBuffStat,
DONE_BUFFER)
If errnum& = 1 Then 'The buffer is avaliable
' Check the status and error flags
If lpDataBuffStat.lStatusFlags <> BUFFER_FULL Then
Msg = "Incomplete Buffer Status = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox Msg, MB_ICONSTOP, "ADLIB Buffer Status"
Form_Unload (1)
End If
If lpDataBuffStat.lErrorFlags <> 0 Then
Msg = "Buffer Error = "
Msg = Msg & lpDataBuffStat.lStatusFlags
MsgBox "Buffer Error", MB_ICONSTOP, "ADLIB Buffer
Error"
Form_Unload (1)
End If

errnum& = AL_CopyBuffer(gblLhld&,
lpDataBuffStat.lBuffNum, DataBuff(0), 0, 100)
If errnum& < 0 Then
MsgBox "AL_CopyBuffer Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If
errnum& = AL_DemuxDataSet(gblLhld&,
lpDataBuffStat.lBuffNum, EngUnits(0), 0, 1)
If errnum& < 0 Then
MsgBox "AL_DemuxDataSet Error", MB_ICONSTOP, "ADLIB
Error"
Form_Unload (1)
End If

errnum& = AL_ClearBufferDoneFlag(gblLhld&,
lpDataBuffStat.lBuffNum)
If errnum& < 0 Then
MsgBox "AL_ClearBufferDoneFlag Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If
lblShowData.Caption = Format$(DataBuff(0), "0") '
print the counts
'lblShowVolts.Caption = Format$(EngUnits(0), "0.000")
+ " Volts" ' print the voltage
lblShowVolts.Caption = EngUnits(0)
ElseIf errnum& < 0 Then 'An error occured in the
AL_GetBufferStatus function call
MsgBox "AL_GetBufferStatus Error",
MB_ICONSTOP, "ADLIB Error"
Form_Unload (1)
End If

End Sub

Que dire de plus...
je ne sais pas trop

Si j'ai une question est ce que je peux rajouter a ce code
une commande me permettant d'enregistrer ce qui défile
dans la zone d'affichage des vols??

Merci beaucoup

Audrey
-----Message d'origine-----
..../...
tu parles de vb, tu as donc aussi une appli en vb6 ?
quelques opérations tu executes ? en gros c'est quoi ton

appli ? elle fait quoi
et ou ?

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:182901c426dc$8979ad90

$
Oui je m'en doute mais je ne sais pas trop ce qui
pourrait


vous être utile pour vous expliquer ce dont il s'agit...
Alors si vous pouvait me dire...
Merci
Audrey
-----Message d'origine-----
bonjour
oui, mais il faidrait plus de détails sur ce code et le
contexte :o))


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Audrey" dans le message de news:198601c426d9$369dda90

$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très
bien,



je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions
de


données, en VB l'acquisition se fait en temps réel,
alors



qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la
mesure



que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.




.




.





Daniel Carollo
Le #5043351
Bonjour Audrey!

C'est toujours le meme projet dont vous parliez le mois dernier?

Si je puis me permettre, Access n'est vraiment pas l'outil adapte au
traitement des donnees en temps reel. En general, la capture se fait avec un
langage de bas niveau (C etait le favori il y a quelques annees, mais on
arrive a des performances acceptables en VB maintenant), et le traitement et
presentation se fait ensuite avec Access si besoin.

La technique que j'ai utilise de nombreuses fois est de realiser une
application en VB qui stocke les donnees dans la base mdb. Une application
developpee dans Access fait ensuite le reste du travail. On peut "marrier"
les deux en ayant des conversations sur les canaux DDE entre les deux
applications, pour demarrer et arreter la capture des donnees, par exemple,
et transmettre le status de l'application VB qui n'a pas obligatoirement une
interface visible a l'ecran.

Un des gros problemes avec Access est la gestion des interruptions en temps
reel. Je n'ai encore pas trouve des controles ActiveX qui fonctionnent bien
avec les cartes de capture dans un environnement Access.

Mettez des points d'impression du temps sur les appels de fonctions externes
pour verifier ou votre delai de 30 a 80 secondes se produit, les fontions
dont le prefixe est AL_ ...

J'espere que ca vous donne des pistes...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Audrey" news:198601c426d9$369dda90$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions de
données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey
Le #5043151
Merci de m'avoir répondu

je pense en effet changer d'outil. Mais je ne suis pas
très sur d'en être capable :-)

Audrey
-----Message d'origine-----
Bonjour Audrey!

C'est toujours le meme projet dont vous parliez le mois
dernier?


Si je puis me permettre, Access n'est vraiment pas
l'outil adapte au

traitement des donnees en temps reel. En general, la
capture se fait avec un

langage de bas niveau (C etait le favori il y a quelques
annees, mais on

arrive a des performances acceptables en VB maintenant),
et le traitement et

presentation se fait ensuite avec Access si besoin.

La technique que j'ai utilise de nombreuses fois est de
realiser une

application en VB qui stocke les donnees dans la base
mdb. Une application

developpee dans Access fait ensuite le reste du travail.
On peut "marrier"

les deux en ayant des conversations sur les canaux DDE
entre les deux

applications, pour demarrer et arreter la capture des
donnees, par exemple,

et transmettre le status de l'application VB qui n'a pas
obligatoirement une

interface visible a l'ecran.

Un des gros problemes avec Access est la gestion des
interruptions en temps

reel. Je n'ai encore pas trouve des controles ActiveX qui
fonctionnent bien

avec les cartes de capture dans un environnement Access.

Mettez des points d'impression du temps sur les appels de
fonctions externes

pour verifier ou votre delai de 30 a 80 secondes se
produit, les fontions

dont le prefixe est AL_ ...

J'espere que ca vous donne des pistes...

--
Daniel :-)

Computing Technologies International - www.computing-
tech.com - We

provide solutions...

"Audrey" message

news:198601c426d9$369dda90$
Bonjour,

voilà j'ai un code visual basic qui fonctionne très bien,
je l'ai ensuite "adapté" en VBA, ety laà il fonctionne
toujours, mais, car il y a toujours un mais, il y a un
décalage de 30 à 80 secondes.
Je m'explique, ce code vise à réaliser des acquisitions de
données, en VB l'acquisition se fait en temps réel, alors
qu'en VBA l'acquisition se fait bien mais avec un
décalage, donc quand je mesure une pile je n'ai la mesure
que 30 à 80 secondes plus tard... c'est un peu génant

Qui pourrait me dire d'où ça peux venir...
Merci
Audrey


.



Le #5042841
Salut,

il s'agit d'access 2000.

Cela peut il avoir une importance???

merci

Audrey
Publicité
Poster une réponse
Anonyme