Hi:
As Paige suggests, seeing your LOG would be most helpful. One suggestion...are you sure that your E drive is available??? For example, review this SAS log:
[pre]
192 %let data_folder = e:\;
193 libname test "&data_folder.";
NOTE: Libref TEST was successfully assigned as follows:
Engine: V9
Physical Name: e:\
194 %let data_folder = j:\;
195 libname test "&data_folder.";
NOTE: Library TEST does not exist.
[/pre]
On my windows system, I DO have an E: drive, but I do NOT have a J: drive.
As a general rule of thumb, it is a bad idea to "pre-quote" your macro variables in the %LET statement. Macro variables are just character strings and quotes belong in the statements where you USE the macro variables.
For example in these two %LET statements below the second (unquoted) value for 16 is the correct usage:
[pre]
%let age = '16';
%let age = 16;
[/pre]
As you can see from this LOG, with quotes inside &AGE, my WHERE statement is incorrect:
[pre]
196 %let age = '16';
197 proc print data=sashelp.class;
198 title "1) Wrong: Students who are &age";
199 where age = &age;
ERROR: WHERE clause operator requires compatible variables.
200 run;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.01 seconds
cpu time 0.00 seconds
201
202 %let age = 16;
203 proc print data=sashelp.class;
204 title "2) Right: Students who are &age";
205 where age = &age;
206 run;
NOTE: There were 1 observations read from the data set SASHELP.CLASS.
WHERE age=16;
NOTE: PROCEDURE PRINT used (Total process time):
real time 0.18 seconds
cpu time 0.03 seconds
[/pre]
This paper is a good introduction to Macro processing concepts.
http://www2.sas.com/proceedings/sugi28/056-28.pdf
cynthia