Question

Closing a form without saving data.

Asked by: poucedeleon

I am trying to create a command that will allow me to close out of a form without saving the data. There are multi steps to get into the forms and at two points you should be able to exit without saving but neither are working the way I want them to.
Data is entered into a field that has an item not in list event. As you type if a matching record is not found, you press enter and the first MsgBox opens. (Pic 1)
The first MsgBox ask if you want to add the New Data, (Pic 2) but when you click no instead of returning to a empty field I get a message saying The text you entered isnt an item in the list, (Pic 3) I then have to press the esc key three times (First press closes the drop-down list, second press removes entered data from the field, third press makes field undirty.
Add New Inmate form has a Cancel button in case you entered the wrong data or just change your mind. When you click the button (Pic 6) the form closes but the data is not deleted from the record. I think the problem with this button is the data has already been saved (Pic 5) base on the fact that the Inmate involved form is no longer Dirty. I am not sure if I should have code to delete the record or if I can still use an undo command.
"This is a Bound Form
"Record Source = tblInmates
"On the Add New Inmate form the InmateID field is a Auto Number Field  
I have post the code I am currently using. It does not work!!!

Private Sub cmdCloseNoSave_Click()
 
            If IsNull(Me!InmateID) = False Then
            If Me.Dirty = True Then
        Me.Undo
    End If
End If
 
DoCmd.Close
End Sub

                                  
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

Select allOpen in new window

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-09-15 at 05:39:29ID24732625
Tags

Closing form

,

Exit

,

Do not Save

,

Focus

,

Dirty

Topics

Access Forms

,

Microsoft Access Database

,

Access Coding/Macros

Participating Experts
1
Points
500
Comments
23

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Preventing an undo Save
    I have a customized menu bar associated with one of my forms that has Access's built-in "Undo" functionality as a choice for a selection. In a certain circumstance, I want to prevent the user to "Undo Save". Is this possible? Note: Please do not respond ...
  2. Dirty Forms
    In Access whenever Data Changes in a form the dirty property is set and we can check it and manually update. How to do this in a vb/ado/access unbound form application ? Usually we have to set a flag in each control's change event and check for a change. My form has 30 f...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: thenelsonPosted on 2009-09-15 at 07:24:23ID: 25335209

To eliminate the "the text you entered is not an item in the list popup", in the Inmate combobox NotInList event you need to set
Response = acDataErrContinue
The Inmate combobox NotInList event will fire (if the user is in it) as soon as the uses presses the Cancel button and the focus leaves the Inmate combobox and before any code in the Cancel button dick event runs so the Inmate combobox NotInList event must handle this on its own.

To not save the record and return the form to dirty = False, you need to Use the Form Before update event.  Set
Cancel = True
to stop the update and stop the change to another record.
 
To stop the closing of the form set
Cancel = True
in the Form Unload and Form Undo events.

See www.thenelson.name/#ReportFormTricks, "Check for required items" for an example of how to do it except the NotInList event handling.

Here in a sample of NotInList event handling:

Private Sub YourComboBoxNameHere_NotInList(NewData As String, Response As Integer)
    Dim ctl As Control
   
    ' Return Control object that points to combo box.
    Set ctl = Me!YourComboBoxNameHere
    ' Prompt user to verify they wish to add new value.
    If MsgBox("Value is not in list. Add it?", vbOKCancel) = vbOK Then
        ' Set Response argument to indicate that data is being added.
        Response = acDataErrAdded
        ' Add string in NewData argument to row source when the row source is a field list.
        ctl.RowSource = ctl.RowSource & ";" & NewData
        'Or Open the "DataEntry" input form when the row source is a table or query
        DoCmd.OpenForm "YourFormNameHere", DataMode:=acFormAdd, WindowMode:=acDialog, OpenArqs:="FillFields"
    Else
    ' If user chooses Cancel, suppress error message
    ' and undo changes.
        Response = acDataErrContinue
        ctl.Undo
    End If
End Sub


About the OpenArqs parameter of the open form command:
OpenArqs passes a value to the opening form.  In that form, you get the value using
Me.OpenArqs
For example:
Private Sub Form_Open()
If Me.OpenArgs = "FillFields" Then
  'Run code to prefill all the fields from last (new) client's information
End If
End Sub

Or you can use OpenArgs to pass a bunch of comma delimited values:

DoCmd.OpenDataDoCmd.OpenForm "YourFormNameHere", DataMode:=acFormAdd, WindowMode:=acDialog, OpenArqs:="Data,More Data,1234,#2/12/2006#"

Private Sub Form_Open()
Dim OpenArqsArray()

If Len(Me.OpenArgs) > 0 Then
  OpenArqsArray = Split(Me.OpenArgs, ",")
  FieldA = OpenArqsArray(0)
  FieldB = OpenArqsArray(1)
  FieldC = OpenArqsArray(2)
  FieldD = OpenArqsArray(3)
End If
End Sub

 

by: poucedeleonPosted on 2009-09-15 at 13:08:25ID: 25338813

Thanks for the help, I am still a little lost. I am going to spend some time reviewing the code you provided and I will reply in the morning.

 

by: poucedeleonPosted on 2009-09-16 at 04:09:35ID: 25344147

theNelson,
I am hoping you can help me tackle this one problem at a time. My coding skills are not as good as I thought (haha)
The first is getting the cancel button to work for the pop-up after pressing enter when typing in NewData. I have attached a copy of the current code I am using. In the Code between the two ampersand It appears there is no instruction what to do if  it = False
I think the line (DoCmd.Close acForm, "frmEditNewInmate", acSaveYes) Should be acSaveNo

Private Sub InmateId_NotInList(NewData As String, Response As Integer)
    Dim strMessage As String
    Dim dbsCurrentDB As Database
    Dim rstInmates As Recordset
 
        strMessage = "Are you sure you want to add '" & NewData & _
        "' to the list of Inmates?"
 
    &If fncConfirm(strMessage) Then&
        Set dbsCurrentDB = CurrentDb()
        Set rstInmates = dbsCurrentDB.OpenRecordset("tblInmates")
        rstInmates.AddNew
        rstInmates!InmateLastName = NewData
        rstInmates!InmateFirstName = "FirstName"
        rstInmates!CIN = "00000"
        rstInmates!InmateGender = "Male"
 
        rstInmates.Update
        Response = acDataErrAdded
    Else
        DoCmd.Close acForm, "frmEditNewInmate", acSaveYes
        Response = acDataErrDisplay
    End If
 
End Sub
 
 
Public Function fncConfirm(strMessage As String) As Boolean
    Dim bytChoice As Byte
    bytChoice = MsgBox(strMessage, vbQuestion + vbYesNo)
    
    If bytChoice = vbYes Then
        fncConfirm = True
    Else
        fncConfirm = False
        
    End If
 
End Function

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:

Select allOpen in new window

 

by: thenelsonPosted on 2009-09-16 at 10:04:56ID: 25347751

You can simplify your code by replacing
If fncConfirm(strMessage) Then
and
the fncConfirm Function with
If MsgBox(strMessage, vbQuestion + vbYesNo) = vbYes Then

Is the InmateId combobox in the frmEditNewInmate form or the  Report Form?  If it is in the Report form, why are you opening the InmateId  form since you are adding the required record with your recordset?  I open a form to add the record if the user needs to enter information into the new record. Otherwise I just use an update query or recordset to add the new record (usually an update query since it is easier).

 

by: poucedeleonPosted on 2009-09-16 at 18:09:41ID: 25352002

The InmateID Is in the WriteUp Form. It is a Drop-down that is used to select existing people in the database. The reason for the "Not in list Event" is to add new inmates without staff having to navigate to another tab to enter new people. I can email you a copy if that will help.  

 

by: poucedeleonPosted on 2009-09-16 at 18:10:59ID: 25352008

The report form in the pics above is the same as Writeup form.

 

by: poucedeleonPosted on 2009-09-21 at 05:21:37ID: 25382128

I am trying to handle this problem one issue at a time. The first is that I get a information message when I click "No" when asked if I want add the person. I have figured out how to correct that, but am still have a problem getting the comb box empty without pressing esc twice. I have explain a little better below.

I have followed the advice above and it works fine, but when I have typed in text and then click "No" when asked if I want to add the name. Changing the response to Continue suppresses the message and using SendKey Chr(vbKeyEscape) closes the dropdown, but I still have to press the esc key twice to get back to a empty form. Is there another way to clear the text entered and loose focus on the combo box?

 

by: poucedeleonPosted on 2009-09-22 at 03:30:52ID: 25391205

I changed the response to acDataErrContinue from acDataErrDisplay
and added the following code. Now when I click cancel the the Info msgbox closes and the combo box is cleared.
Now I have to get the cancel to work if I click yes and the frmEdfitNewInmate form opens. I want the form to clear any data in the combo box and the table and close.


        Response = acDataErrContinue
        SendKeys Chr(vbKeyEscape)
        Me.InmateID = ""
        SendKeys Chr(vbKeyEscape)
   End If
   End Sub

                                              
1:
2:
3:
4:
5:
6:
7:

Select allOpen in new window

 

by: thenelsonPosted on 2009-09-24 at 12:04:23ID: 25416612

Please post all the code for the not in list event.

 

by: poucedeleonPosted on 2009-09-25 at 01:45:54ID: 25421081

Here is the code for the "NotInList" event. I have the it working if you cancel at the first message box that ask if you want to enter the new data. You can click "No" and it closes the msgbox and clears the form. If you click yes the EditNewInmate form opens, if you click cancel the form closes, but it still enters the data in the table. I looked at he example you reference above. I tried to use the code you provide but still have the same problem of the data being entered even though I click to cancel. I think the reason is the data is being entered into a different form and I don't know how to address this.

Private Sub InmateID_NotInList(NewData As String, Response As Integer)
On Error GoTo Err_InmateID_NotInList
 
    Dim strMessage As String
    Dim dbsCurrentDB As Database
    Dim rstInmates As Recordset
    
        strMessage = "Are you sure you want to add '" & NewData & _
        "' to the list of Inmates?"
        
        If fncConfirm(strMessage) Then
    
        Set dbsCurrentDB = CurrentDb()
        Set rstInmates = dbsCurrentDB.OpenRecordset("tblInmates")
        rstInmates.AddNew
        rstInmates!InmateLastName = NewData
        rstInmates!InmateFirstName = "FirstName"
        rstInmates!CIN = "00000"
        rstInmates!InmateGender = "Male"
        rstInmates.Update
        
        Response = acDataErrAdded
Else
        Response = acDataErrContinue
     '  Three lines below added to get the combo box InmateID to close, clear and Not Dirty.
        SendKeys Chr(vbKeyEscape)
        Me.InmateID = ""
        SendKeys Chr(vbKeyEscape)
End If
   
Exit_InmateID_NotInList:
        Exit Sub
Err_InmateID_NotInList:
        If Err.Number = 3022 Then
        MsgBox "Please contact your administrator..." & vbCrLf & "Check for Duplicate CIN Numbers of   000000..."
Else
        MsgBox Err.Number
End If
Resume Exit_InmateID_NotInList
   
End Sub
                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:

Select allOpen in new window

 

by: thenelsonPosted on 2009-09-26 at 11:34:20ID: 25430925

I realize you stated this part is working but lets get rid of SendKeys. Instead of
        SendKeys Chr(vbKeyEscape)
        Me.InmateID = ""
        SendKeys Chr(vbKeyEscape)
try
    InmateID.UnDo
    Me.Undo

In the code you posted, I do not see anything opening the form EditNewInmate. This code:
        Set dbsCurrentDB = CurrentDb()
        Set rstInmates = dbsCurrentDB.OpenRecordset("tblInmates")
        rstInmates.AddNew
        rstInmates!InmateLastName = NewData
        rstInmates!InmateFirstName = "FirstName"
        rstInmates!CIN = "00000"
        rstInmates!InmateGender = "Male"
        rstInmates.Update
writes to the table tblInmates directly.

 

by: poucedeleonPosted on 2009-09-26 at 16:39:50ID: 25432066

I made the change you suggested. It works, but the combo box is still open. Maybe this is better It saves the user a step if they want to type a different name, but I have users that don't know they need to click the esc key to exit the record.

The code below open the edit form


 
Private Sub InmateID_Exit(Cancel As Integer)
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    
    stDocName = "frmEditNewInmate"
    
    fncSaveRecord
 
    
    If Me.InmateID.Column(2) = 0 Then
        
        stLinkCriteria = "[InmateID]=" & Me![InmateID]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    Else
    End If
    
End Sub

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:

Select allOpen in new window

 

by: thenelsonPosted on 2009-09-27 at 08:36:45ID: 25434228

You can close the dropdown of a combobox by setting the focus to another control then back to the combobox.

Why are you opening the form frmEditNewInmate when you have already saved the not in list new data to the table tblInmates?  Since the new record is saved in the not in list event, pressing the Cancel button in the Add New Inmate form will not remove the record unless you have coding like a delete query to remove the record.

 

by: poucedeleonPosted on 2009-09-27 at 18:09:24ID: 25436239

Now that I see there is design problem, but do not know how to write the query to delete the record. I started this data base, but then had someone help me complete it and this is how she constructed it. I wanted to be able to add a new person without going to a different tab, so she wrote the "NotInList Event". I like the way it works, but need to be able to cancel. When staff are making entries if they need to cancel for any reason currently they are getting stuck. Some have exited by Cntlr, Alt, Delete which then enters "000000" into the table. Then no one else can add a new inmate. The database is still usable as long as the person receiving the violation is already in the database.  

 

by: thenelsonPosted on 2009-09-27 at 20:17:18ID: 25436579

To create a delete query, go to queries in the database window select, new, select the table. Under the queries menu, select delete query. Drag the star (all fields) from the table window to the first field column. Enter the criteria to select the record. Switch to SQL view and copy that. To run the query from code paste the SQL statement behind "CurrentDB.Execute". When your done it will look like this:
CurrentDB.Execute "DELETE tblInmates.* FROM tblInmates WHERE InmateID= " & Me!InmateID & ";"

Once people get used to using Ctlr, Alt, Delete or turning off the computer, it is hard to get them to stop. Your company should have a strict written policy forbidding any employee except IT personal from doing that with listed consequences. Also, doing frequent updates can protect from this sort of action. This is my back up policy for any database critical for office operation:

This is what I do to back up our database.  It may seem excessive but the data is critical to our business and I am very paranoid having been a system's engineer through the 70's and 80's when hard drive crashes were common.

The backend is stored on a raid 7 disk pack.  The server will email me if there is a problem.

Every half hour that the frontend is running, the frontend copies the backend to a raid 0 disk pack by shelling to the DOS copy command.  The DOS copy command will copy an open file.  The only time the copy is corrupted is when someone writes to the backend during the 30 seconds the copy is being made.  The database deletes copies that are more than two hours old so I always have the last 4 copies.  The database will email me if it runs into a problem.  (These copies are very useful for things like a user saying, "I just accidental deleted everything in a memo field.")

Every night, a workstation runs MS backup zipping a copy of the BE to its harddrive.  I keep all these backups for the last four months.

Every night, another workstation runs Second Copy (www.centered.com) zipping a copy to a ftp site on our hosted www.nosuffering.com site.  Second Copy will email me if it runs into a problem.  The data center is in California.

Every night, a third workstation runs Handy Backup which compacts and repairs and then zips the file to a ftp site on my hosted www.thenelson.name site.  Handy Backup will email me if it runs into a problem.  The data center is in Pennsylvania.

I also look in on all the backups a couple of times a week.  This way, I am not relying on one computer or one piece of software for the backups.  I have automatic offsite backups at opposite ends of the country.  All of this has cost me $50 for Second Copy and Handy Backup and $9 a month for two hosted websites (which includes my websites www.nosuffering..com and www.thenelson.name).

 

by: poucedeleonPosted on 2009-09-28 at 09:05:37ID: 25440495

Do I run this command from the cmdCancel_Click button?

 

by: thenelsonPosted on 2009-09-28 at 09:41:12ID: 25440840

I suppose you can. I don't quite understand why you tire opening that form anyway since you are giving the user the option to cancel the new record add with the message box: "Are you sure you want to add '" & NewData & "' to the list of Inmates?"

 

by: poucedeleonPosted on 2009-09-28 at 15:05:20ID: 25443833

The Sgt gets reports from various places and staff. Some times they may be in the process of entering a report that requires them to add a inmate that has never had a writeup so he/she is not in the database. So they enter the last name, press enter the form opens because it is a new person, then they realize the report is missing the CIN number or they see the report is pass the date to process it ect. Now they need to exit out of the record without adding what they have typed already.

The message box prior to this point ask "Are you sure you want to add this inmate to the database, Normally the answer is yes. But sometimes as you are adding the report the name doesn't come up which is caused by typing the name wrong so they would click no. I use the esc key, but I have thirty people that use this database and most are not very computer savvy. I keep telling them to press the esc key, but they don't remember, so I am trying to make it as simple for the user as possible.

 

by: thenelsonPosted on 2009-09-29 at 07:19:53ID: 25449307

So instead of using a message box with "Are you sure you want to add this inmate to the database?" Then having a popup form displaying the information where they can cancel the add after they said yes, Why not have the popup form replace the message box.  The popup form will display the info with the question  "Are you sure you want to add this inmate to the database?" and a yes and no button. This way, you are only asking once, the user has the info he needs to make the decision and you don't have to delete a record that is not needed.

 

by: poucedeleonPosted on 2009-10-02 at 14:00:33ID: 31628867

theNelson thanks for the patience and advice, I am re-designing part of the db.

 

by: thenelsonPosted on 2009-10-02 at 14:10:36ID: 25482254

You're welcome.  Glad to help and thank you very much for the points with "A" grade!

Happy computing!

Nelson

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...