Avatar billede hitman3k Nybegynder
12. april 2008 - 12:25 Der er 20 kommentarer og
1 løsning

comport problem

hej E.

Jeg har et problem, jeg har en kode fra VBA hvor jeg opretter forbindelse til en comport, men den vil ikke vrke i Access nogen som kan lave denne kode om:

Private Sub Command1_Click()

PortTimeout = False
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    MSComm1.CommPort = port
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.InBufferSize = 1
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 500
   

End Sub
Avatar billede terry Ekspert
12. april 2008 - 13:14 #1
well I'm not sure at all if the code to MSComm1 is correct but the IF syntax is wrong

Private Sub Command1_Click()

PortTimeout = False
If MSComm1.PortOpen = True Then
    MSComm1.PortOpen = False
    MSComm1.CommPort = port
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.InBufferSize = 1
    MSComm1.PortOpen = True
    MSComm1.RThreshold = 500
  End If 

End Sub
Avatar billede terry Ekspert
12. april 2008 - 13:15 #2
.
Avatar billede hitman3k Nybegynder
12. april 2008 - 14:36 #3
Hmmm det vil ikke rigtig virke :S

når jeg åbner den DB på en anden com så er der noget med Licens fejl :S
Avatar billede kabbak Professor
12. april 2008 - 16:11 #4
du mangler nok : MSCOMM32.OCX MSComm Control
kan hentes her http://www.yes-tele.com/mscomm.html
Avatar billede hitman3k Nybegynder
12. april 2008 - 16:28 #5
sjovt nok det virker hellere ikke. for den lå der i forvejen..
Avatar billede hitman3k Nybegynder
12. april 2008 - 16:38 #6
når jeg åbner den formular hvor det ligger i skriver den:

Der er intet objekt i dettet kontrolelement.



:S
Avatar billede hitman3k Nybegynder
12. april 2008 - 16:40 #7
og når jeg så trykker på min knap for at åbne min forbindelse så skriver den:

Run-time Error '438':

object doesn't support this property or method
Avatar billede terry Ekspert
14. april 2008 - 19:30 #8
"Der er intet objekt i dettet kontrolelement."

Are you sure the component is registered correctly?
Do you have a reference to the control?



By brother happens to be an experet at serial comms and I asked him if the code you gave is correct, this is his answer.


It's a little more complicated than that. It depends what he wants to do.

Private Sub Command1_Click()
Dim Port as Integer
    Port = 1
'// His example shows him using a variable called 'Port' but it '// doesn't show whether this is being set elsewhere ?
'// so I'll do it here. 1, 2 or 3 or whatever for whichever com port '// he wants to use.

PortTimeout = False
'// What's this 'PortTimeout' ? Is it a global variable declared elsewhere ?
'// It doesn't have anthing to do with MSComm '// so what is he expecting it to do ?

If MSComm1.PortOpen = True Then
    MSComm1.PortOpen = False
    MSComm1.CommPort = port
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.InBufferSize = 8192
    MSComm1.InputLen = 0
    MSComm1.RThreshold = 500
    MSComm1.PortOpen = True
  End If

Exit Sub

In this example I've declared a receive buffer (InBufferSize) of 8k If RTHreshold is set to any value above zero then the receive buffer needs to be big enough to hold at least that much data. But because Windows is not very responsive he needs to be generous so I'd never use less than 8k

I'm actually nervous of using RThreshold at all. I'd set that to 0 which means that a receive 'OnComm' event will be triggered as soon as any data arrives.

He doesn't set any flow control. The remote device might have Flow control enabled so if he doesn't want to use flow control then he must also set mscomm1.rtsenable = true mscomm1.dtrenable = true Only actually of use if his cable is wired for hardware flow control but setting these won't harm anything so I'd do that anyway.
Avatar billede terry Ekspert
21. april 2008 - 13:16 #9
status?
Avatar billede hitman3k Nybegynder
21. april 2008 - 18:47 #10
det virker stadig ikke :S den bliver ved med at skrive: Der er intet objekt i dettet kontrolelement.

selv om jeg har den der MSCOMM32.OCX

Lagt i Windows\System32
Avatar billede terry Ekspert
21. april 2008 - 18:59 #11
try removing the object and from the form and adding it again. Are you sur ethat it is registered correctly?
Avatar billede hitman3k Nybegynder
21. april 2008 - 19:07 #12
hvordan registere jeg det?
Avatar billede terry Ekspert
21. april 2008 - 19:16 #13
Well if you can see it under Tools+references in code view then it should be registered, but it may be registered incorreclty.

http://support.microsoft.com/kb/q249873/
Avatar billede terry Ekspert
21. april 2008 - 19:16 #14
Have you tried removing and adding it again?
Avatar billede terry Ekspert
21. april 2008 - 19:39 #15
Avatar billede hitman3k Nybegynder
21. april 2008 - 22:43 #16
Det er underligt jeg kan bare ikke få det til at virke... :S

har prøvet at fjerne MSComm32.OCX fra Access og lagt den der ind igen men det gør ingen forsekl :S
Avatar billede terry Ekspert
22. april 2008 - 09:32 #17
if you look at the link I gave 21/04-2008 19:39:11 it contains code to a VB program which should also work in Access VBA. This code uses API calls so that MSCOMM isnt needed.
Avatar billede hitman3k Nybegynder
23. april 2008 - 16:12 #18
Det fra den side kan jeg bare ikke finde ud af at få til at virke. :S
Avatar billede terry Ekspert
23. april 2008 - 18:32 #19
not much more I can do to help you :o(
Avatar billede hitman3k Nybegynder
26. april 2008 - 19:45 #20
kan ikke få det til at virke. men du får point afligevel for din hjælpsomhed.
Avatar billede terry Ekspert
03. maj 2008 - 09:21 #21
thanks, hope you find a solution.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester