Here's the code that I use when running in a 32 bit Windows XP system. This code does not work when running in windows 7 64 bit.
Code:
(vl-load-com)
(defun c:14rlk ()
(command "pspace")
(command "zoom" "extents")
(setq CurrLayr (getvar "clayer"))
(setq CurrOsmode (getvar "osmode"))
(command "osmode" "0")
(setq tb-name "14_TBLOCK-D")
;.............. ids TBLOCK vintage
(setq ss1 (ssget "_C" '(19.3125 0.4375) '(19.75 0.3125)))
;.............. ids positionally specific rev block
(setq en (ssname ss1 0))
;.............. gets ent name
(setq en-A (entnext en))
;.............. gets letter-number ent info
(setq en-desc (entnext en-A))
;.............. gets descr ent info
(setq en-date (entnext en-desc))
;.............. gets date ent info
(setq en-by (entnext en-date))
;.............. gets by ent info
(setq en-appr (entnext en-by))
;.............. gets appr ent info
(setq objid-A (vla-get-objectid(vlax-ename->vla-object en-A)))
(setq objid-date (vla-get-objectid(vlax-ename->vla-object en-date)))
(setq objid-desc (vla-get-objectid(vlax-ename->vla-object en-desc)))
(setq objid-by (vla-get-objectid(vlax-ename->vla-object en-by)))
(setq objid-appr (vla-get-objectid(vlax-ename->vla-object en-appr)))
(setq fld-a
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(rtos objid-A 2 0)
">%).TextString \\f \"%tc1\">%"
)
)
(setq fld-date
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(rtos objid-date 2 0)
">%).TextString \\f \"%tc1\">%"
)
)
(setq fld-desc
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(rtos objid-desc 2 0)
">%).TextString \\f \"%tc1\">%"
)
)
(setq fld-by
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(rtos objid-by 2 0)
">%).TextString \\f \"%tc1\">%"
)
)
(setq fld-appr
(strcat "%<\\AcObjProp Object(%<\\_ObjId "
(rtos objid-appr 2 0)
">%).TextString \\f \"%tc1\">%"
)
)
(setq fld-drwgname "%<\\AcVar Filename \\f \"%tc4%fn2\">%")
;...... Creates FIELD code for drawing name
(command "-bedit" tb-name)
(command "-layer" "set" "X_BORDER-TXT" "")
(setq er1 (ssget "_C" '(25.6875 -0.15625) '(26.875 -0.9375)))
(if er1
(command "erase" er1 "")
);...if
(setq er2 (ssget "_C" '(34.25 1.0625) '(34.875 0.46875)))
(if er2
(command "erase" er2 "")
);...if
(setq er3 (ssget "_C" '(33.0 0.25) '(33.5 0.125)))
(if er3
(command "erase" er3 "")
);...if
(command "-style" "A100" "Arial" "0.100" "1" "0" "N" "N")
(command "AFLAGS" "19")
(command "-attdef" "" "REV_DESC" fld-desc "style" "A100" "justify" "BL" "26,-0.28125" "0")
(command "-attdef" "" "REV_BY" fld-by "style" "A100" "justify" "BL" "26,-0.53125" "0")
(command "-attdef" "" "REV_DATE" fld-date "style" "A100" "justify" "BL" "26,-0.78125" "0")
(command "-attdef" "" "REV_APPR" fld-appr "style" "A100" "justify" "BL" "26,-1.03125" "0")
(command "-style" "A445-BLOCK_USE_ONLY" "Arial" "0.445" "1" "0" "N" "N")
(command "AFLAGS" "18")
(command "-style" "A130" "Arial" "0.130" "1" "0" "N" "N")
(command "-attdef" "" "DRAWING_NUMBER" fld-drwgname "style" "A130" "justify" "mL" "32.875,0.125" "0")
(command "-attdef" "" "REV" fld-a "style" "A445-BLOCK_USE_ONLY" "justify" "MC" "34.4375,0.8125" "0")
(command "chprop" "all" "" "color" "bylayer" "")
(command "_bsave")
(command "_bclose")
(repeat 3 (command "-purge" "all" "" "n"))
(command "osmode" CurrOsmode)
(command "-style" "A100" "Arial" "0.100" "1" "0" "N" "N")
(if (= (wcmatch CurrLayr "X*") T)
(command "layer" "set" "0" "")
(command "layer" "set" CurrLayr "")
);...if
);...defun