It's not a straightforward answer: "Access" or "VB" - there are a number of factors you need to consider:
1) How fast are these pulses coming?
2) How wide are these pulses?
3) Can you configure the card for interrupts? If so, can you specify rising or falling edge detect interrupts?
4) Can the card be configured to count pulses?
5) How accurate do you need to be?
This is realtime data: you are trying to process it with non-realtime code. If you need to be accurate, or the pulse width is narrow, then you may be on a loser. Check the manual: you want to offload as much of the processing to the card or it's driver software as possible, before you even start to think what kind of front end software to use!
"The max is 130000 pulses per hour. does this help?
I am a rookie."
That's ~37 pulses per second: that means that assuming the pulse waveform is 1:1 (i.e. up as long as it is down)
_____ _____ _____
| | | |
----- -----
Then every pulse has a duration of 0.01 seconds: you have to poll the level detector at a minimum every 0.01 seconds (or 0.005 seconds to be safer). Unfortunately, detectors tend to not be 1:1 - waveforms normally look like this:
_________ __________ ______
| | | |
- -
Which means that the pulse you are trying to detect is a low level and very short. Very, very short. So to catch it accurately using polling on a level, you have to poll at least twice during the duration of each low pulse. Not easy to do in a non-real time environmment! (With Windows, it could be updating the screen when you want to check the level, so you get delayed and miss it)
Check your board documentation: see if the driver can do the detection for you, and if so, what kind. There is a good chance it can detect rising/falling edge and possibly count or time the pulses as well.