473,385 Members | 1,846 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

RS232 data to Access database - general approach

Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.
Jul 17 '05 #1
7 12732
Check this site:
http://www.granite.ab.ca/access/serialport.htm
--
PC Datasheet
Your Resource For Help With Access, Excel And Word Applications
re******@pcdatasheet.com
www.pcdatasheet.com

"Chris" <c_************@yahoo.co.uk> wrote in message
news:33*************************@posting.google.co m...
Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.

Jul 17 '05 #2
c_************@yahoo.co.uk (Chris) wrote in message news:<33*************************@posting.google.c om>...
Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.


http://www.tinaja.com (Don Lancaster) talks about the Basic Stamp
microprocessor that, from what it appears, can be programmed in VBA
style coding. I would be interested in hearing about anyone else who
has used this processor to log data outside of the computer into
Access or to control a machine/device/process.

James A. Fortune
Jul 17 '05 #3
well you on a java board so the default answer is going to be to get
java involved and your lovely project can have many elegant solutions.
however, right now, you just want the job done. if you have a few hours
(or days) you can fiddle with it using Access VBA. windows people would
want you to launch a major campaign to active your downloading software
the moment the user connects the handheld to the serial port. this could
require praying to jesus or buddah as 99% of your software developement
time and money could go to that alone.

depending on how fast the user wants his handheld back, you effectively
have to either run an app that checks the port for the presense of the
handheld every five minutes or an interrupt that will activate a service
routine if there's change on the port.

the easu part is writing to an access database or a text file.

wish i were there, i'd spend the day at it. ofcourse, i'd want you to
consider linux but hey, you can't have everything...

cheers

- perry

pe***@cplusplus.org
Chris wrote:
Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.


Jul 17 '05 #4
So are you saying that I can't just open the port automatically when
the data arrives? Do I have to have it open already in preparation
for the data to arrive - I suppose this seems like an obvious thing to
say. And I guess it isn't a good idea to have the port open the whole
time just incase some data comes along?

Maybe the user could just click on a "prepare for measurement" button
on a small java app on the desktop which opens the port and then shut
it again after?

Chris
Jul 17 '05 #5
Chris wrote:
Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.


Windows NT/2000 and XP has strict control over I/O ports and will cause
an exception (privileged instruction) error if an attempt is made to
access a port that you are not privileged to write to. Applications such
as MS Office run in a ring 3 privilege level and do not have direct
write access to the port without the use of system calls using the API.

I suggest writing VBA code to use a OCX/DLL and provide access that way.
I'm sure you can find reference material on www.allapi.net or
http://msdn.microsoft.com or planetsourcecode.com may be of some help to
you.

You could instead use the DDE feature of Microsoft Office to communicate
with HyperTerminal

If you can find middleware or code it, you could use the import tools in
access (simple vba macro) to import the data.


Jul 17 '05 #6
"Chris" <c_************@yahoo.co.uk> wrote in message
news:33**************************@posting.google.c om...
So are you saying that I can't just open the port automatically when
the data arrives? Do I have to have it open already in preparation
for the data to arrive - I suppose this seems like an obvious thing to
say. And I guess it isn't a good idea to have the port open the whole
time just incase some data comes along?

Maybe the user could just click on a "prepare for measurement" button
on a small java app on the desktop which opens the port and then shut
it again after?

Chris


there is no penalty for having the port open all the time. I would suggest
using a pure VBA solution in Access. All you need to do is include the
MSCOMM32.OCX in your app - it is a MS-supplied ActiveX control that manages
serial ports. It is very easy to use. I wrote an interface to our phone
system to automatically log all calls in less than a day using the control.
Here is a sample code snippet. MSComm1 is the OCX, fContinue is a Global
Boolean. I start the loop when a button is clicked, and stop it when the Esc
key is pressed (or the app closes):

Private Sub DataLoop()

Dim InBuffer As String

'Tell the control to read entire InBuffer when Input
'is used.
MSComm1.InputLen = 0
'Set control's InBuffer size to 1K
MSComm1.InBufferSize = 1024
'Use port chosen
MSComm1.CommPort = cboPort.Text
'9600 baud, even parity, 7 data, and 1 stop bit.
MSComm1.Settings = "9600,E,7,1"
'Open the port.
MSComm1.PortOpen = True

Do
lblStatus.Caption = "Waiting for data..."
'Send start command
MSComm1.Output = Chr$(14)
'Clear input InBuffer
InBuffer = vbNullString
Do
DoEvents
InBuffer = InBuffer & MSComm1.Input
Loop Until InStr(InBuffer, vbCrLf) Or Not fContinue

'Send stop command
MSComm1.Output = Chr$(15)

If Len(InBuffer) > 0 Then
lblStatus.Caption = "Data received - posting..."
Call PostData(InBuffer)
End If
Loop While fContinue

'Close the serial port.
MSComm1.PortOpen = False

End Sub
Jul 17 '05 #7
The easiest tool that I know of for feeding serial data directly into
an Access database application would be a product called WinWedge from
TAL Technologies.
WinWedge is a serial communications program that is designed to run in
the background and feed incoming serial data directly to other Windows
programs. It works by either "stuffing the keyboard buffer" so that
the other program sees the data as if it were being typed in on the
keyboard or it can also feed data to other programs using a feature of
Windows called Dynamic Data Exchange (DDE). Access has excellent
support for DDE and it works great with WinWedge to do exactly what
you are looking to do.
For more information about WinWedge visit:
http://www.taltech.com/products/winwedge.html
On 2 Jul 2004 04:14:19 -0700, c_************@yahoo.co.uk (Chris)
wrote:
Here's the situation:

I work at a scientific institution and I have a portable electronic
device which is used to take measurements. The device produces a very
small amount of numerical data, about 10 to 15 numbers per
measurement. This operation is performed frequently and I would like
to implement an automatic solution that moves this data across a
windows network and into the fields of an Access database application.

The device has an RS232 port to transmit the data each time a
measurement is made. I have tested this and can save the data to a
text file by using the HyperTerminal application which ships with
windows 98.

HyperTerminal is fine but in order to read in data from the device I
have to run the HyperTerminal application and manually open a serial
port before the measurement is executed. I need a solution that opens
the port automatically i.e. the user only has to operate the device
and not the computer terminal that the device is connected to. The
solution should either send data straight to Access or store the data
in a text file for middleware to deal with.

What should be my general approach? Would it be possible to implement
a solution in, for example java, or could I use Access VBA?

Maybe I don't need to write any code at all if there is middleware
available that could do the transfer?

Any suggestions appreciated.


Jul 17 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Frnak McKenney | last post by:
Back when computer dinosaurs roamed the earth and the precursors to today's Internet were tiny flocks of TDMs living symbiotically with the silicon giants, tracking access to data processing...
1
by: Dan | last post by:
I wnat to see in browser an status from an device connected on rs232 port The java class for read from serial port is: //Serial.java import java.io.*; import java.util.*; import...
10
by: Zap | last post by:
Widespread opinion is that public data members are evil, because if you have to change the way the data is stored in your class you have to break the code accessing it, etc. After reading this...
8
by: Steve Jorgensen | last post by:
Hi folks, I'm posting this message because it's an issue I come up against relatively often, but I can't find any writings on the subject, and I haven't been able to figure out even what key...
8
by: Chris | last post by:
Here's the situation: I work at a scientific institution and I have a portable electronic device which is used to take measurements. The device produces a very small amount of numerical data,...
0
by: TheCoder | last post by:
I am making a D-base with web conectivity for my class project. I have everything working but the subit button sends the data to the correct fields but afterwards it wants to reproduce new blank...
3
by: Przemo | last post by:
Hi, Do you know some good RS232C class? There is one in VB.NET 101 Examples, but I think it is poor. 1. I can't for e.g. read into my application all data received. I must tell how many...
3
by: Marc Gravell | last post by:
Kind of an open question on best-practice for smart-client design. I'd really appreciate anyones views (preferably with reasoning, but I'll take what I get...). Or if anybody has any useful links...
15
lwwhite
by: lwwhite | last post by:
I'm not sure if this discussion is a better fit for the Access or XML forum and I don't want to double-post, so I'm starting in Access because you've been so helpful to me here. I am preparing a...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.