Hey Guys I need some help. I have been working on this script for a
week now trying to out put my sql data into an excel macro. I have
tried everything I know how to do and I need some direction. Please
advise.
Heres my code:
#!perl
use DBI;
use IO::File;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
$dbh = DBI->connect('dbi:ODBC:agent');
my $agnlst = 'agent_list.txt';
my $ticsub = 'ticket_scrub.txt';
my $out = IO::File->new(">$ticsub");
print "Connecting to Sql Database\n ";
sub agent_report {
my $agent= shift;
$sql = "SELECT tblScrubInfo.numTicketNumber, tblScrubInfo.txtAgentID,
tblScrubInfo.datDate, tblScrubInfo.txtCustomer,
tblScrubInfo.datDateIncidentWasNoted, tblScrubInfo.txtScrubingTech,
tblScrubDetail.txtCategory, tblScrubDetail.Description,
tblScrubDetail.ynWasFixed FROM tblScrubInfo, tblScrubDetail WHERE
txtAgentID='$agent' AND tblScrubInfo.numTicketNumber =
tblScrubDetail.numTicketNumber AND ynWasFixed= No ORDER BY txtCustomer
";
$sth = $dbh->prepare($sql);
$sth->execute ||
die "Cannot open my $dbh ?";
while (@row=$sth->fetchrow_array)
{print $out "@row\n"}
}
print "Connection Successful - Fecthing Data \n";
open (LIST, "$agnlst") or die "Cannot open the agent $agnlst: $!\n";
while ( my $ca = <LIST> ){
chomp ($ca);
agent_report($ca);
}
close (LIST);
my $Excel = Win32::OLE-> new ('Excel.Application', 'QUIT') or
die ("Cannot create new object: ", Win32::OLE->LastError());
$Excel-> Sheet (QueryTables->Add) (Connection);
$Excel-> {TEXT} ('C:\Perl\bin\ticket_scrub.txt',
(Destination->Range("A1"));
$Excel-> {Name} = ticket_scrub;
$Excel-> {FieldNames} = True;
$Excel-> {RowNumbers} = False;
$Excel-> {FillAdjacentFormulas} = False;
$Excel-> {PreserveFormatting} = True;
$Excel-> {RefreshOnFileOpen} = False;
$Excel-> {RefreshStyle} = xlInsertDeleteCells;
$Excel-> {SaveData} = True;
$Excel-> {AdjustColumnWidth} = True;
$Excel-> {RefreshPeriod} = 0;
$Excel-> {TextFilePromptOnRefresh} = False;
$Excel-> {TextFilePlatform} = xlWindows;
$Excel-> {TextFileStartRow} = 1;
$Excel-> {TextFileParseType} = xlDelimited;
$Excel-> {TextFileTextQualifier} = xlTextQualifierNone;
$Excel-> {TextFileConsecutiveDelimiter} = False;
$Excel-> {TextFileTabDelimiter} = False;
$Excel-> {TextFileSemicolonDelimiter} = False;
$Excel-> {TextFileCommaDelimiter} = False;
$Excel-> {TextFileSpaceDelimiter} = True;
$Excel-> {TextFileColumnDataTypes} = Array(1, 1, 1, 1, 1, 1, 1,
1, 1, 1,);
$Excel-> {Refresh BackgroundQuery} = False;
$Excel-> Workbook-> SaveAs = ('C:\Perl\bin\ticket_scrub.xls');
Heres the error message that I get when I run it. I have read the
doucmentation and I think Im almost there but I need some direction.
Documents and Settings\daniel\Desktop>perl agent.pl
syntax error at agent.pl line 43, near ") ("
syntax error at agent.pl line 44, near ");"
Execution of agent.pl aborted due to compilation errors.
C:\Documents and Settings\daniel\Desktop>