Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


Microsoft Access





Microsoft Access is a rapid application development (RAD) relational database tool. Access can be used for both desktop and web-based applications, and uses VBA (Visual Basic for Applications) as its coding language.

Share tech news, updates, or what's on your mind.

Sign up to Post

No need to check if the form is idle.  I have a point of sale program written in Access and when a sales transaction is finished a form pops up to ask if a receipt should be printed.  The problem is the sales clerks walk away instead of hitting the "No" button, leaving the form sitting there for the next clerk to step up.  

I just want the form to close after a minute if the clerk forgets to click the "No" button.

Get free NFR key for Veeam Availability Suite 9.5
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

If you’re using QODBC to update QuickBooks data from Microsoft® Access but Access is not showing the updated data, you could have set up QODBC incorrectly.
I developed a Mini Database on MS Excel for my office to manage departmental Activities and Score Performance. I am looking at developing same for Individuals in the organisation. I want this version to run on MS Access cause am sure Access Database is better than Excel. How can I make this work on MS Access. I have a fairly good understanding of MS Access but dont know how to relate really go about it. I am attaching a sample of what I would like to achieve but now in MS Excel. It has formulars for scoring the individual based on the activities they achieved. this is the sample document: (https://drive.google.com/file/d/0B-aLuBbYQh08RExqenAxdTNTSEE/view?usp=sharing) you might need to download the file as google doc does not show it propoerly. Any sugguestions will be welcomed.

we have a user that has access to multiple shared email accounts (ie consumersupport@joes.com, consumersupport@myclub.com,shop@jerrysfun.com)

we are setting up replies to an email but need to set the recipient (  onsumersupport@joes.com, etc) as the sender based on the incoming email WITHOUT having to hardcode an address.

Here is the code we have that is working but uses the users default email address as the sender:

Sub Reply_Scripting()
Dim origEmail As MailItem
Dim replyEmail As MailItem
Set origEmail = Application.ActiveWindow.Selection.Item(1)
Set replyEmail = Application.CreateItemFromTemplate("\\cgtxstorage\company\Sales & Customer Service\Russ Email Templates\AAA OGIO 20Off Apperal Resp.oft")
replyEmail.Subject = origEmail.Subject
replyEmail.To = origEmail.SenderEmailAddress
Rem replyEmail.To = origEmail.To
replyEmail.CC = origEmail.CC
replyEmail.HTMLBody = replyEmail.HTMLBody & origEmail.Reply.HTMLBody
End Sub

Open in new window

I appreciate any and all suggestions,


I've been struggling for a couple of weeks with the message "out of memory".
Have already created a totally new database and imported all objects. After that, it works well. But after a while, the message "out of memory" suddenly returns when I'am working on the VBA code behind a form. Then I can not do anything else in VBA. Also compiling immediately returns the error message.
Have transferred the form to another db. Then a could work in the form normaly without error. No message "out of memory". Only I can not return this form to the original db. The message appears that the form or code already exists. The only option is to import the form without VBA code (and module to NO) and then take the VBA as text via the VBA editor.
Have gone through all the modules manually. Found two functions that had the same names. This adjusted. After that I can work for a few hour, but then I get again the error message "out of memory".

Does anyone have any experience with this? How can I solve this?

I'am using office 2013 32 bit
Windows 10, 64 bit
Db is ca 250 mb

Is there a way Ms Access can capture data through scan, for example if an invoice is coded expense then in the field for cost type it should write an expense.
I think there is an opportunity to do away with routine bookkeeping by using VBA code as long as MS access can read the scan, I can for see non-accountants doing complete booking keeping & consolidation of accounting statements on their own without knowing what is in the background. I think the only cost here is buying a scanner.


i have a query BalTanktoFabrication which shows the balance tanks to be fabricated.
now i want to calculate the manhours, so i have created a Form TankMHOurCal here i configure the tank specs and calculate the required manhours for each tank.
now further on Form TankMHourcal i have [#ofCrew] [Crew Hrs] and [Bal Hours] as a row and in the above of the form i have Total shift hours which no of employee multiplied by shift hours. for example if the shift hours is 11 and no of employees is 100 than 11x100=1100
my question, i want a text box on form TankMHourCal, which makes running sum of [Crew Hrs] until it reaches 1100 or [total shift hours]. after that it should start making the running sum again from new.
I am looking at an existing Access 2013 application.  One of the process is running very slowly and I am looking for improvements.

This logic uses payment records and install plan records.

A query “qryPayments_Hdr_MatchAgainst_ActiveInstallPlans"   already exists that matches payment records to install plans.  The returns returns three fields
1. 'ID', which is the unique primary key for a payment record,
2. 'PaymentInstallPLanID' which is an alias for field 'InstallPlanID' in the payment record which is the field that should be stamped with the matching InstallPLanID and
3. 'InstallPLanID' which is the unique primary key for each install plan record.

Currently there is a logic loop that reads each line in the query one by one.  
Then, using the 'ID', it reads each payment record, updates the payment record with the InstallPlanID
and loops thru until all of the payment records have been stamped with the appropriate InstallPlanID.

There are over 100k payments so this takes a while.

I am thinking there must be a way to create an update query that will handle all of this without any coding whatsoever and probably execute more quickly than this step by step approach.

The two fields named INstallPLanID, one in the payment record and one in the INstallPlan record are confusing me when it comes time to write an update query.

I came up with this but when I run it I get an error "Operation must use an updateable query"

My application loads ms access database table from my desktop. I wish be able to transfer this table to my domain(I have what I need to access this domain).
Please help me to do the following:
1. copy my table (Ms Access) to my site.
2. have the ability to edit this table and save it again.
3. have  the location address of  this table so I can load with my app.
4. Inside My app, I have no difficulty to use this table (Iam using FireDac of Delphi 10 seatle)
5.other options than using my site to publish my database are welcome
thank you in advance
Hi every one,
I have this code below is working fine for backing up the file to a new file name
is it possible to make it only backing up only All tables to the new file name.

Function BackupSource()
    DoCmd.Hourglass True
    On Error GoTo Errorhandler
Dim strBu As String
   Dim buf As String
      Dim MD_Date As Variant
         Dim fs As Object
            Dim strSourceName As String
               Dim strSourceFile As String
                  Const conPATH_FILE_ACCESS_ERROR = 75

strSourceName = CurrentProject.Name
strSourceFile = CurrentProject.Path
buf = "C:\WinRef\"

   If GetAttr(buf) <> vbDirectory Then
   MkDir buf
   End If
MD_Date = "HCS" & Format(Date, "yyyy-mm-dd-") & Format(Time, "hh-mm-ss")
strSourceFile = CurrentProject.Path

strBu = "C:\WinRef\" & MD_Date & "\"
    MkDir (strBu)
            Set fs = CreateObject("Scripting.FileSystemObject")
               fs.CopyFile strSourceFile & "\" & strSourceName, strBu
            Set fs = Nothing

DoCmd.Hourglass False
    Exit Function
    DoCmd.Hourglass False
    DoCmd.OpenForm "MsgE_BkUpPc"
End Function
Free Tool: Subnet Calculator
LVL 10
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

I have the following code to import outlook emails from a specified folder (inbox) into a access table. However, I only want to include todays or the last x days in the import (to speed up the import). Is there a simple way to only include for example todays emails?

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("PMSImport")
'Set up Outlook objects.
 Dim cMail As Outlook.MailItem
 Dim cAtch As Outlook.Attachments
'Write Outlook mail properties to Access "Email" table.
iNumMessages = objProp.Count
If iNumMessages <> 0 Then
        For I = 1 To iNumMessages
            If TypeName(objProp(I)) = "MailItem" Then
                Set cMail = objProp(I)
                    If Fix(cMail.SentOn) > Fix(Now()) - 2 Then
                       rst!EntryID = cMail.EntryID
                       rst!ConversationID = cMail.ConversationID
                       rst!Sender = cMail.Sender
                  End If
            End If
        Next I
    End If
I havean ACCES DB with Delphi. I open the Db from a  menuline open DB. The I have a menuline to close de DB. So I can use different DB for each year.
When I run my software from delphi (execute) it run properly but when i close the Database and without to return to Delphi, if I trie to open it again, I have nothing in my Different db grid. So it seems that it is not open but I haven't any error mesage just blank dbgrid an d DBtext component.
Any idee? Beacause if I close le DataBase and reopen it again it schould work.
Using Access 2003 and I have the following command: DoCmd.OutputTo acOutputReport, RptName, "SnapshotFormat(*.snp)", strPathandFileName

The report it changes to a snapshot format uses arguments to format the report, is it possible to pass arguments with this type of command?
win10, access 2010,vba,runtime. This has been working fine, but now I'm getting an undefined variable error on a set statement:
"Set myOutlook = CreateObject("Outlook.Application")"
myOutlook is the undefined variable error. this has been working fine for months.
other supporting info:
there are 2 identical instances of this in the app, the other works fine
no missing references
I am using windows 10 and ms access 2016 64bit. I need a working version of how to add an icon to the system tray.I have tried numerous versions without success.
I'm very new to VBA, so I'm stumbling along the way.  I've looked at other solutions on here for the before update code, but I don't know how to get it to actually work on my command button.  I entered the below, but my button is "on click".  I noticed I only see the Before Update on the actual form - is that where I put the code?

Private Sub cmdImportUsers__BeforeUpdate(Cancel As Integer)

Dim Response As Integer
Response = MsgBox("You are about to import user data which will overwrite any existing manually changes you've made in this system.  Are you sure you want to continue?", vbYesNo)
If Response = vbYes Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "z_qry_Delete_z_tbl_TAM_Users"
DoCmd.RunSavedImportExport "Import-z_tblSourceEmployees"
MsgBox "Users Imported Successfully"
Cancel = True
MsgBox "Users have not been imported"
DoCmd.SetWarnings True

End If

End Sub

I just created a tool/calculator for my wife to use at work. I used VBA and Userform in Excel (input text boxes and sliders, and then several outputs). Once I got it working, she informed me it would really only be useful if she can access/run this calculator on her iPhone or iPad on the go. Is there any way to do this?

I have written some MS VBA code to scan a document on my local scanner and save the resulting scan in a particular folder with a particular file name. It arrives there as a BMP file, which is unacceptably large in file size (typically 25 MB). I have a CutePDF and PDF Creator and MS Print To PDF as PDF printers to choose from, if needed, but I cannot figure out how to print the BMP file to them by using some effective VBA code.

So, using MS Access VBA, how do I select the BMP file, convert it to PDF and save it in the same folder with the same name (except with a PDF extension, of course)? When I do this manually I get a PDF of around 500 kb, which is much more acceptable in size.

The end result I need is for the user to place a document, like a tax file number application, on the scanner, click a button on the database and have the system scan the doc, file it in the employee's folder on the server with a name indicating that it is his or her tax file number application and then automatically convert the resulting BMP to PDF and finally to delete the BMP file to save space on the server.

I can do all of this except the actual conversion of the BMP to PDF. Can any one help me here? My environment is Win-10, Access 2016. Thanks
In my query I have this:

Which results in this:

Obviously not correct. How to fix?
Hire Technology Freelancers with Gigs
LVL 10
Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.


I am trying to figure out a way to come up with a helper column. I need to show all dates that are 4 weeks old and 13 weeks old based on today's date now((). also, please note that Sunday is the beginning of the week and Saturday is the end of the week

your help is greatly appreciated ..
I'm using the code below to try and delete all Excel workbook connections, however I get the following error:
Run-time error '424' Object required on line  Do While ActiveWorkbook.Connections.Count > 0
What additional code is needed to execute? Thanks

 Set objApp = CreateObject("Excel.Application")
         objApp.Visible = True
         Set wb = objApp.Workbooks.Open("C:\Users\vincent.Shis\Documents\ALL_Reports.XLSX", True, False)
   Do While ActiveWorkbook.Connections.Count > 0

    wb.SaveAs "C:\Users\vincent.shields\Documents\ALL_Reports_Test.XLSX"
    Set objApp = Nothing

    Set objApp = Nothing

     Set objApp = Nothing
An expert helped me out yesterday with this question:

"How autonumber field in subform section of a form"

But I just ran into a problem.  If the user entered 6 digits in the first field and then for example 9 in the 2nd field, I get an overflow error when I click [Proceed].  If the user enters anything less than 6 digits in the first field it worked fine.

Here is my current code: (Note I commented one line out because I was getting 1 more record than requested.

Private Sub cmdProceed_Click()

    Dim intLoop As Integer
    Dim db As dao.Database
    Dim rs As dao.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tblLoadsDetail")

'    For intLoop = Nz(Me.txtStartingN, 1) To Nz(Me.txtStartingN, 1) + Nz(Me.txtRecordCount, 0)
    For intLoop = Nz(Me.txtStartingN, 1) To Nz(Me.txtStartingN, 1) + Nz(Me.txtRecordCount - 1, 0)
        rs!LoadRecordID = Forms!frmLoadsHeader.txtLoadRecordID
        rs!LoadID = intLoop

    Set rs = Nothing
    Set db = Nothing
    DoCmd.Close , ""
    Forms!frmLoadsHeader.cmdAutoNumberDetailLoadIDRecords.Visible = False

End Sub

Open in new window

I have a table that contains a field "Risk" The values in this are either "LOW", "MEDIUM" or "HIGH".
I need to report on this but have HIGH at the top of the report, then MEDIUM etc.

I think I need to add a field in my query that can assign a numeric value dependent on the contents of the Risk field.

Thanks in advance for any help
Sorry to bother you again

I want to prevent captured data from be truncation in Ms Access due to  text control width. For example :

(1) When I enter data in a narrow width text control , once it reaches the end of control it should stop accepting further entry. Example if the text control Employee Name  require  ( John Peter Andrew) to be entered, but due to its width lets say it can only accommodate (John Peter) the remaining part should be rejected due to width, that will be better , I have noticed some fan truncation on the reports . I want to prevent this once and for all


In Microsoft Access 2016's LONG TEXT field, how to add a TAB or INDENT ?

This is for a book project.  So paragraphing essential.

Microsoft Access





Microsoft Access is a rapid application development (RAD) relational database tool. Access can be used for both desktop and web-based applications, and uses VBA (Visual Basic for Applications) as its coding language.