Modules & VBA :: Send Commands To External Device Using A Serial Port
Dec 10, 2013
I need to send commands to an external device using a serial port.My understanding is that that I need to select the reference to the Microsoft Communications Control (MScomm32.ocx).But is not available in the list of references!
I have soem code that is looking at the Comm port on my laptop....I had this code working great about 9 months ago. I dont know what has changed besides me moving to another laptop.
I dont know if I am missing a reference to a llibrary or what. I think I am....
Right now I am bombing out on the First Line....
DOES ANYONE HAVE ANY IDEAS HERE....
ERROR: Run time error 424 Object Required
CODE:
MSComm7.InBufferCount = 0 'Flush the Buffer
If (Not MSComm7.PortOpen) Then
Dim Instring As String ' Buffer to hold input string MSComm7.CommPort = 1 ' Use COM1. MSComm7.Settings = "9600,N,8,1" ' 9600 baud, no parity, 8 data, and 1 stop bit. MSComm7.InputLen = 0 ' Tell the control to read entire buffer when Input is used. MSComm7.PortOpen = True ' Open the port. MSComm7.Output = "AT" & vbCr ' Send the attention command to the modem. Ensure that the modem responds with "OK". Buffer$ = Buffer$ & MSComm7.Input ' Wait for data to come back to the serial port. 'MsgBox "SMS Port Open", vbOKOnly, "Port State" Else 'MsgBox "SMS Port Already Open, It is now closing, and will re-open", vbOKOnly, "Port State" MSComm7.PortOpen = False 'MSComm7.PortOpen = True Call Command8_Click End If
I have Access 2013, Win 7, Outlook 2010 (32-bit).I want to send an email from Access, but not through Outlook. Instead I want to connect to an external SMTP server. I've found a few examples that doesn't work for me. With code including for example
Code: Set ObjMessage = CreateObject("CDO.Message")
I get an "Error 429: Object can't be created in Active X-component" (My translation from Swedish).With code including this:
Code: Dim oEMail As New CDONTS.EMail
I get "user defined type has not been defined" (my translation again).I have working code for sending email through Outlook, which works fine. But, Outlook adds a lot of span tags, making it impossible to read for certain screen readers used by visually impaired people, therefore I can't use Outlook.
I've tried to read up on the matter (CDO), and think that maybe the CDO library etc is not included on my computer?can I download it?
I was quite familiar with DOS commands and was able to create access DBs and write the VBA button code. However that was quite a few years ago and Ive forgotten it all.For every image file in DIR A or subdirectory If that image file exists in DIR B, then delete the image in DIR B.
I want to run multiple SQL commands on click of a button. I have these three command,
CurrentDb.Execute "INSERT INTO UserMadeDeviceT(Product, ORESector) " & _ " VALUES ('" & Me.D_NewDeviceTxt & "', '" & Me.D_ORECmb & "')" CurrentDb.Execute "INSERT INTO UserMadeDeviceT (RatedKilowattPower, KilogramWeight)" & _ " SELECT RatedKilowattPower, Weight FROM UserSelectedComponentT " & _ " WHERE [TotalComponent] = '" & D_ComponentNameCmb & "'" CurrentDb.Execute "INSERT INTO UserMadeDeviceT (Cost) SELECT SUM (EuroCost) FROM UserSelectedComponentT"
all of these work indevidually and return the correct value but the add three rows to the table. How can I combine these three commands into one so that it will only add one entry?
Does anyone have a source that lists basic Access (2000) commands. I have training in SQL server (so I am just starting out) but I am working with Access and the commands aren't always the same and the help files in Access aren't much help.
My immediate need is to find the equivelant of the go command. I am trying to build one query with multiple update statements.
I am using an access program with a form with detail section. I would like to create auto sr.No when i am creating a new quotation. Using Autonumber didn't work because it start numbering from last quotation.
I am attempting to modify some code that is used for reading content in an Outlook mail and need to catch and move the email if certain content is duplicated in the email.
The code reads the email that is in the attached image format:
As seen, this email contains 2 devices, but the Serial No in both is duplicated.
In the code, I need to capture this and rather than reading the contents, I need to just move this email to a separate "Manual" folder to be dealt with separately, so not to write the information to the database.
The current code is as follows:
Option Explicit Private ns As Outlook.Namespace Private sEmailAddress As String Private sPerson As String Private dReceived As Date
I'm having an issue with the database being read only and a type mismatch due to OpenRecordset. I know this database use to work when it when it was just
CurrentSerNum = RecSet(0) +1 was doing the incrementing.
I need the database to increment in a different way now.
Q=manufacture location 1st number is new=0 or used=1 2nd and third number =82 4th is single digit year aka 2015 = 5 6 and 7th are work week aka 25 for this week 8,9,10 are incremental numbers for the units made that workweek, so 001,002,003. Then week 26 starts the increment starts back at 001.
Code: Private Sub MakeThoseProducts_Click() On Error GoTo Err_MakeThoseProducts_Click Dim NumericSerial As Double Dim WorkWeek As String Dim WorkYear As String Dim WorkWeekNumber As Integer Dim WorkYearNumber As Integer Dim Location As String
I have this function and I can't get rid of this error:"Compile error! External Name not defined"..This is just doing some calculations. I am just calling the function on the after update event on my form.
Code: Dim fHrs As Double Dim Ttl As Double Dim Ttl1 As Double Dim Ttl2 As Double Dim Ttl3 As Double Dim Ttl4 As Double Dim Ttl5 As Double Dim Ttl6 As Double Dim Ttl7 As Double
I use the following code behind the BeforeUpdate event of a control, to validate input.
Code: Private Sub StockPrice_BeforeUpdate(Cancel As Integer) 'strings used for the MsgBox Dim strTitle As String Dim strMsg1 As String Dim strMsg2 As String Dim strMsg3 As String
[Code] ....
There are two different forms that use that control and this code behind the BeforeUpdate event.
It works on one but not on the other, allowing to input anything in the control with checking and without bringing up any msgbox. Searching what's the problem in the immediate window, brings up a message saying "External Name not defined'.
I have a table onto which i would like to add new column based on a set of if statements. (to assign weekly dates)this is only a portion of the code, but when I clicked on run, it gives me "external name not defined error".
Code:
Option Compare Database Option Explicit Public Sub AssignWeekly() 'declares weekly column as a new variable Dim Client_Weekly_1213 As Integer
I am asking my users to interact with the Get External Data dialog, and I'm trying to restrict what they can do.
Code: DoCmd.RunCommand acCmdImportAttachText
I really like the mapping feature Access uses so I want to use that part of the Wizard, but I don't want my users to import data to the wrong table.Can I skip the first page of the 'Get External Data' Dialog series? Invoke the 'Import Text Wizard' without the previous dialog?see: AWF2. I can get the file path from a File Picker dialog.
I have a lotus datbase at work and there are far to many conflicts with XP. I am trying to make an access database but keep getting as far as the calculations and then give up.
I have a ships data base. I am trying to calculate totals for each vessels cargo. Some vessels have more than one cargo. eg A Shell Oils vessel may have Diesel, Unleaded or Leaded Fuel on the one trip.
I have been able to get these totals to work b4 but I forget how I did it. If I calculate Cargo1+Cargo2 + Cargo 3 I get 100200300
The other problem that I have is that the totals do not appear in the corresponding table and so I am not able to use totals in query or report.
eg Form Cargo Cargo Tonnage 100 Cargo 1 Cargo Tonnage 1 200 Cargo 2 Cargo Tonnage 2 300 Cargo Total 100200300 :mad: Am I going about this form in the correct way or am I totally going against the grain of access?
I was wondering if it was possible to link random external tables to the Active Database through VBA. I would like to run the code that would open up a dialog box that would let the user select the database as well as the tables within that database that the user can select to link to. I am able to select the database and but not able to select the actual tables. The tables will be random so I can't make a constant statement for a specific database.
I am setting up a form to send multiple attachments to an email.I have a query "qry_DwgEmail" that has an ID and a path column. On the form I have a button with the code below in the Click Event.The code below all works fine unless the path is incorrect, so I would like some error handling to be able to either:
1) Stop the code from running and display a message box with my message. 2) Continue the loop and then have the message box display what files could not be found (Preferred).
Note, the following code was taken from one of the forums I am not 100% on what it all means.
Code: Private Sub btn_CreateEmail_Click() Dim MyDB As Database Dim MyRS As Recordset Dim objOutlook As Outlook.Application Dim objOutlookMsg As Outlook.MailItem Dim objOutlookAttach As Outlook.Attachment Dim TheAttachment As String
I have a few questions which I hope you all can help point me in the right direction.
A little background is in order. What I am trying to accomplish is Read the NMEA string passed to the Com Port 1 of a laptop from a Trimble GPS Unit. Once I have the string I need to parse it ang place the Lat Long in a couple fields in my Access Database. First off I have to capture the string from the Com Port.
Does anyone have any suggestions of where I can start to learn the code needed to read the Com Port 1 to retrieve the NMEA String pushed from the GPS Unit?
How can I do this from within an Access Database?
If I can get the string returned to a variable that would be great. From what I heard other people were writing this to a file?
I have an Excel file with a name range "DBIAS" which identifies all database data.
Then I have an Access file with a form to import that database (better, that named range) into an Access table. While importing, I have to filter some records or grouping by some field.
I cannot run correctly a VBA code to get data (filtered and/or grouped) from that name range and save those records to an existing or a brand new table.
I could get those data as DAO.recordset and printed out with "Debug.print" on immediate window, but I cannot complete the final step: writing those records to a table.
I have a function that exports a number of tables within an access 2007 database to one spreadsheet using docmd.transferspreadsheet.
The error message in the title of this post presents itself during a loop which transfers the tables to the spreadsheet. However, it doesn't always happen, sometimes it completes the process perfectly which is quite frustrating.
Below is the section of code where the error occurs ....
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_Table_Exports WHERE Type = 'CRM'", dbOpenSnapshot) rs.MoveFirst Do Until rs.EOF TableName = rs.Fields("Table") WSName = rs.Fields("WSName") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, TableName, NewWBPath, True, WSName rs.MoveNext Loop
I have some code which creates a record in an external csv file to provide information to upload a vehicle to the website. It works fine with the exception of creating duplicates when, for example an option to amend a record is given to the user before continuing to a new record. The option has to be in place in case there is an error in the specifics of what is important to be recorded in the database and under such circumstances the form code allows the user to tab through the form and correct any errors, but this creates duplicate entries in the csv file as the user has to pass through the 'SavePrintVehPurch_Exit' button a second time after corrections are made.
I am wondering if there is a way of altering the following code to effectively look look to see if the csv record exists and if so correct any changed field information rather than create a whole new record or create a new record where the record does not exist - The record in the csv file is determined by the 'Me.VP_VehRegMark.Value '.
Private Sub SavePrintVehPurch_Exit(Cancel As Integer) Dim fileText As String Dim fileName As String Dim fileNumber As String fileNumber = FreeFile
[Code] ....
I am wondering about introducing the something like the following ( but can't work out how to clarify comparison of the fields)
If Len(filename(fileText)) = ? Then Do not change entry Else Overwrite the new detail