Ну я так и думал. Можно изменить запрос немножко. Вместо Values использовать еще один подзапрос собирающий все значения. Т.е. получится примерно так:
Код:
insert into trans_rasxod
(tr_id_prod, tr_id_categ, tr_sk, tr_ves, tr_price, tr_ves_p, tr_date, tr_time, tr_user, tr_oper)
(select 1, (select p_id_categ from product where p_id = 1), 1, 'кг', 250, 'Руб', '07.07.2013', '06:05:00 PM', 1, 0)
А вот насчет записи строкой в Дату и Время, тут могут быть сюрпризы. Например, если у вас стоит формат системной даты MM.DD.YYYY или время задается в 24 часовом формате. Лучше сразу в запросе приводите к нужному типу. Для MSSQL например есть функции Cast и Transform для этого. Вы к какой БД подключаетесь - то?