If info(vend.AccountNum);
actually outputs a valid vendor to the screen, then your code has nothing wrong with it and should work. If it does not work, I would guess you have some sort of modification or corrupt vendor data. I tested with AX 2009. I tested your code and my own version. Here is my working code I tested:
Args args = new Args();
VendTable vendTable;
;
select firstonly vendTable;
if (!vendTable)
error("Missing vendor");
args.record(vendTable);
new MenuFunction(menuitemdisplaystr(VendTable), MenuItemType::Display).run(args);