Question

Import Tab Delimited Text File Into Database

Asked by: zakirdavis

I would like to import a large amount of data into my database on my website by uploading a csv file into the database file, as opposed to inputting each record, one by one.

I have a substantial amount of data in EXCEL, which i exported as .txt file (TAB DELIM).

Now what. I believe i will need:

1. Form page with upload function
2. Process page which takes data from .txt file, and puts into the database file.

*I exported my column names into the .txt file. Which would you recommend: no column names, or column names? My guess is no column names.

------------------------
Sample of .txt file
------------------------

COL1       Col2       Col3       Col4       Col5       Col6       Col7        Col8        Col9       Col10      Col11      Col12
Mixed Use       NEW YORK      OPEN MKT       1.20        6       5200      300000      16000             25         88888888      "TEXT DESCRIPTION"

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
2004-02-08 at 15:34:29ID20877591
Tags

file

,

text

,

delimited

,

import

,

tab

Topic

ColdFusion Application Server

Participating Experts
3
Points
500
Comments
22

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. remove tab-delims from csv file
    i'm looking to remove tab delim squares from a csv imported into access. would prefer to do within if that's not going to cause performance problems (largeish csv files + access goes char by char). however, suggestions for other options welcome. bonus for code that returns...
  2. Is there a way to parse a tab-delimited text file using UTL…
    Is there a way to parse a tab-delimited text file using UTL_FILE?
  3. Parsing tab-delimited file containing some empty columns
    I'm trying to parse a tab-delimited file with a batch file. I run into problems where there are null fields not represented by a place-holder character. Instead there is just a tab followed immediately by another tab. The file is coming from a system that I can't touch. ...
  4. dataset to tab delimited file
    Does anyone has the code to convert a dataset into a tab delimited file through vb.net
  5. tab delimited file to Access database
    I want to create Access database from a tab delimited file in vb.net.
  6. Excel export to text file tab-delim
    Hi Experts! Simple enough request--export from a current workbook to a tab deliminated text file...only twist is that I do not need all of the fields. I'd like to do the following: export columns 1, 3, 10 to text file for the current record (current_row = ActiveCell.Row) &...

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: Tacobell777Posted on 2004-02-08 at 15:51:52ID: 10305777

What db are you using?

If MS SQL, then use DTS (Data Transformation Services) it is made to perform large imports and it easily imports an excel file with 8000 records into the db within a second.

Otherwise you could do something like

INSERT INTO yourTable
SELECT    
FROM         OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\temp\taco2.xls";Extended properties=Excel 5.0')...Sheet1$

 

by: zakirdavisPosted on 2004-02-08 at 16:43:08ID: 10306110

Using microsoft access file: .mdb

 

by: zakirdavisPosted on 2004-02-08 at 16:44:14ID: 10306123

i want to have an upload function on the webpage, where i could select "Browse For File", selecting file, hit upload, and then the processing happens.

 

by: anandkpPosted on 2004-02-08 at 21:36:47ID: 10307581

Hi,

yes DTS can be used for it as well - thats teh best way to go ! but for some reason if u cant use it - then u'll need to create a DSN for ur excel file on ur server

Use ur normal upload utility ... allow the user to upload the xls file.

save it on ur server [create a ODBC DSN to this excel file on the server]

<CFQUERY NAME="Qry_Excel" DATASOURCE="Excel_DSN" DBTYPE="ODBC">
      select * from "sheet1$"            
</CFQUERY>

<cfloop QUERY="Qry_Excel">
      <CFQUERY DATASOURCE="DB_Dsn">
        Insert into (field1, field2)
            values (
            <CFQUERYPARAM CFSQLTYPE="cf_sql_varchar" VALUE="#ExcelData1#">,
            <CFQUERYPARAM CFSQLTYPE="cf_sql_varchar" VALUE="#Exceldata2#">
            )
    </CFQUERY>      
</CFLOOP>

If the fieldnames are same just use import function as given above by Tacobell
Insert into DBTable (Select * from "Sheet1$")

 

by: jyokumPosted on 2004-02-08 at 21:55:21ID: 10307648

could just read the tab delimited file. this example gives you the upload form and the insert to the database.

<cfif isDefined('form.filename')>
      <cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="makeunique">
      <cffile action="read" file="#expandpath(cffile.ServerFile)#" variable="fileData">
      <cfloop index="record" list="#fileData#" delimiters="#chr(10)##chr(13)#">
            <cfquery name="qryInsert" datasource="whatever">
            INSERT INTO tablename (COL1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12)
            VALUES (
                  <cfqueryparam value="#listgetat(record,1,chr(9))#" cfsqltype="cf_sql_varchar">,
                  <cfqueryparam value="#listgetat(record,2,chr(9))#" cfsqltype="cf_sql_varchar">,
                  <cfqueryparam value="#listgetat(record,3,chr(9))#" cfsqltype="cf_sql_varchar">,
                  <cfqueryparam value="#listgetat(record,4,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,5,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,6,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,7,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,8,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,9,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,10,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,11,chr(9))#" cfsqltype="cf_sql_numeric">,
                  <cfqueryparam value="#listgetat(record,12,chr(9))#" cfsqltype="cf_sql_varchar">
            )
            </cfquery>
      </cfloop>
      Data inserted into the database!!
<cfelse>
      <form name="frmData" method="post" enctype="multipart/form-data">
            <input type="file" name="filename"><br />
            <input type="submit">
      </form>
</cfif>

 

by: zakirdavisPosted on 2004-02-09 at 09:08:20ID: 10311807

How might my form look like which i used to upload the document? I need to append the data, and the .txt file will need to overwrite the .txt file that is stored on the server.

ex. i upload tabDelim.txt today, on tomorrow, i upload again, the new file needs to overwrite tabDelim.txt (hence only having one file on the server), and appending the data to the .mdb file, as opposed to overwriting the data on the .mdb file.

 

by: jyokumPosted on 2004-02-09 at 10:29:48ID: 10312800

the form could be as simple as this

<form name="frmData" action="doStuff.cfm" method="post" enctype="multipart/form-data">
     <input type="file" name="filename"><br />
     <input type="submit">
</form>

then on the action page

<cffile action="upload" destination="#expandPath('tabDelim.txt')#" filefield="filename" nameconflict="overwrite">

just use the code I posted earlier for the insert into the database.

 

by: jyokumPosted on 2004-02-09 at 10:32:47ID: 10312826

oops, this should be the action page

<cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="overwrite">
<cffile action="rename" destination="#expandPath('tabDelim.txt')#" source="#expandPath(cffile.serverfile)#">

 

by: zakirdavisPosted on 2004-02-15 at 21:57:53ID: 10369593

jyokum:

So far i tried what you posted and it works, well sorta. it is puttin the information into the datafile, however, i am running into an error. Any  inside? My 12th column is a lengthy column, in which I specified it to be a MEMO field to accept the data.

Error Executing Database Query.  
[MERANT][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver]Invalid precision value  
 
The Error Occurred in C:\CFusionMX\wwwroot\Testing\uploadAction.cfm: line 33
 
31 :                <cfqueryparam value="#listgetat(record,12,chr(9))#" cfsqltype="cf_sql_varchar">
32 :           )
33 :           </cfquery>
34 :      </cfloop>
35 :      Data inserted into the database!!

 

--------------------------------------------------------------------------------
 
SQL    INSERT INTO Table (Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12) VALUES ( (param 1) , (param 2) , (param 3) , (param 4) , (param 5) , (param 6) , (param 7) , (param 8) , (param 9) , (param 10) , (param 11) , (param 12) )  
DATASOURCE   testing
VENDORERRORCODE   98
SQLSTATE   HY104

 

by: Tacobell777Posted on 2004-02-15 at 22:01:27ID: 10369615

If I understand you correctly you are now doing a SELECT on the ACCESS DB and then import each row while looping over it in CF, correct?

Why don't you use

INSERT INTO yourTable
SELECT    
FROM         OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\temp\taco2.xls";Extended properties=Excel 5.0')...Sheet1$

You can even make the FROM a Query of a Query

INSERT INTO yourTable
SELECT    
FROM         myQuery

There is no looping volved

 

by: Tacobell777Posted on 2004-02-15 at 22:01:32ID: 10369616

If I understand you correctly you are now doing a SELECT on the ACCESS DB and then import each row while looping over it in CF, correct?

Why don't you use

INSERT INTO yourTable
SELECT    
FROM         OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\temp\taco2.xls";Extended properties=Excel 5.0')...Sheet1$

You can even make the FROM a Query of a Query

INSERT INTO yourTable
SELECT    
FROM         myQuery

There is no looping involved

 

by: zakirdavisPosted on 2004-02-15 at 22:21:34ID: 10369692

jyokum:

I got it to work. cf_sql_longvarchar is the type i need to use.

Here is another problem. Now when i export the TAB Delimited file, any row in access that contains a comma (in my long text field), Excel puts that column in quotes, which is going to be a problem.

How would i go about getting rid of the quotes while they are being INSERTED into the database?

 

by: zakirdavisPosted on 2004-02-15 at 22:27:37ID: 10369714

Tacobell777:

Your tactic seems easy to implement, but what i would like to know is, the code you show above is going to be in my action page? Would i be keeping my upload page the same?

1st Page (Select File Page)
-------------------------------
<body>
<form name="frmData" action="uploadAction.cfm" method="post" enctype="multipart/form-data">
     <input type="file" name="filename"><br>
     <input type="submit">
</form>
</body>

2nd Page (Process The Upload)
------------------------------------
<cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="overwrite">
<cffile action="rename" destination="#expandPath('tabDelim.txt')#" source="#expandPath(cffile.serverfile)#">

<cfif isDefined('form.filename')>
     <cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="makeunique">
     <cffile action="read" file="#expandpath(cffile.ServerFile)#" variable="fileData">
     <cfloop index="record" list="#fileData#" delimiters="#chr(10)##chr(13)#">
          <cfquery name="qryInsert" datasource="testing">
          INSERT INTO Commercial (Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12)
          VALUES (
               <cfqueryparam value="#listgetat(record,1,chr(9))#" cfsqltype="cf_sql_varchar">,
               <cfqueryparam value="#listgetat(record,2,chr(9))#" cfsqltype="cf_sql_varchar">,
               <cfqueryparam value="#listgetat(record,3,chr(9))#" cfsqltype="cf_sql_varchar">,
               <cfqueryparam value="#listgetat(record,4,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,5,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,6,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,7,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,8,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,9,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,10,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,11,chr(9))#" cfsqltype="cf_sql_numeric">,
               <cfqueryparam value="#listgetat(record,12,chr(9))#" cfsqltype="cf_sql_longvarchar">
          )
          </cfquery>
     </cfloop>
     Data inserted into the database!!
<cfelse>
     <form name="frmData" method="post" enctype="multipart/form-data" action="uploadAction.cfm">
          <input type="file" name="filename"><br>
          <input type="submit">
     </form>
</cfif>

 

by: Tacobell777Posted on 2004-02-15 at 22:47:31ID: 10369792

<cfif isDefined('form.filename')>
     <cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="makeunique">

          <cfquery name="qryInsert" datasource="testing">
          INSERT INTO Commercial (Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12)
          SELECT    Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12
          FROM         OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=c:\Temp; Extended Properties="Text; HDR=No; FMT=Delimited"')...YOURTEXTFILE#CSV
          </cfquery>
     </cfloop>

<cfelse>

I think this comes close to what you need.

 

by: zakirdavisPosted on 2004-02-15 at 23:32:13ID: 10369952

In regards to the line:

FROM         OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=c:\Temp; Extended Properties="Text; HDR=No; FMT=Delimited"')...YOURTEXTFILE#CSV

this is supposed to work on another computer that does not have the database file on their local computer. The database file is on my web server. This is all working on the internet. so  C:\TEMP; will not work. What would i put in the place?


Also I believe your earlier post in regards the EXCEL file works better as i do not have to do any exporting into CSV which is easier, so i will go with that option.

 

by: Tacobell777Posted on 2004-02-15 at 23:36:00ID: 10369974

The file should be on the server, i.e. uploaded already..

 

by: zakirdavisPosted on 2004-02-15 at 23:44:46ID: 10370000

the file is already uploaded. what i am confused by is why in my source i would write 'Data Source=c:\Temp;

as the datasource is not on my computer.

 

by: Tacobell777Posted on 2004-02-16 at 00:02:28ID: 10370069

Change c:\temp to where ever the file is, maybe I should have made that clear form the start, change everything to suit your environment, the file name as well..

 

by: zakirdavisPosted on 2004-02-16 at 16:29:06ID: 10377594

Tacobell777:

I feel like an idiot over here, but this is not working right. somethings wrong with the FROM clause.

<cfquery name="qryInsert" datasource="testing">
       INSERT INTO Commercial (Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12)
       SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12
       FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="tabDelim.xls";Extended  properties=Excel 5.0')...COMM$
       </cfquery>

--------------rest of source

<body>
<cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="overwrite">
<cffile action="rename" destination="#expandPath('tabDelim.xls')#" source="#expandPath(cffile.serverfile)#">

<cfif isDefined('form.filename')>
     <cffile action="upload" destination="#expandPath('.')#" filefield="filename" nameconflict="makeunique">

<cfquery name="qryInsert" datasource="testing">
       INSERT INTO Commercial (Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12)
       SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12
       FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="tabDelim.xls";Extended  properties=Excel 5.0')...COMM$
       </cfquery>

Data inserted into the database!!
<cfelse>
     <form name="frmData" method="post" enctype="multipart/form-data" action="uploadAction.cfm">
          <input type="file" name="filename"><br>
          <input type="submit">
     </form>
</cfif>
 
</body>

 

by: Tacobell777Posted on 2004-02-16 at 22:30:56ID: 10379528

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="tabDelim.xls";Extended  properties=Excel 5.0')...COMM$

In the data source you dont have the full path, i.e. C:\whatever\file.xls
And you know COMM should represent the Sheet name, right?

 

by: zakirdavisPosted on 2004-02-16 at 22:53:22ID: 10379625

ok. i will put the full path, but my question is the end of the line

...COMM$

is this the correct syntax? Or are you assuming i know what to write at the end of the line:
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="tabDelim.xls";Extended  properties=Excel 5.0')...COMM$

and in regards to OpenDataSource, is this supposed to be the name of my db?

My SQL is not powerful at all and your post is kinda confusing.

 

by: zakirdavisPosted on 2004-02-17 at 00:57:27ID: 10380233

Some helpful posts which i just could not get to work in my fashion

http://www.experts-exchange.com/Web/WebDevSoftware/ColdFusion/Q_20244979.html


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wrgrfexcelobjects.asp

For the life of my i cannot figure out why knowone has asked or posted the question in plain ENGLISH on the following:

How Do I IMPORT all the USED Columns and Rows from an EXCEL file into my .mdb without creating a DSN on the server.

Hypothetical situation: User have data in excel, would like to upload that data (APPENDING) into their current and existing .mdb file on the webserver, without exporting to CSV or TAB DELIMITED.

If you find a link to answer that exact question (with source code), please post it, especially if it is aimed a people with minimal experience with SQL, ExcelOBJECTS, COLDFUSION or DTS.

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...