簡易化改良版です。
更新画面を1画面にしたのとスタイルシートを無しにしました。
(スタイル設定は、環境が違うとうまく行きません、というか環境に合わせて再設定が必要なので)
簡素なのでこちらの方が参考にしやすいのではないかと。
****<< MONPYO2.hta >>***********************************************************
<html>
<head>
<hta:application navigable="yes" scroll="auto">
</hta:application>
<script language="JavaScript" type="text/javascript">
var page = "";
var gyom = "";
var unum = "";
function func_init() {
var tmp = location.search;
if (tmp == "") {
page = "LST";
gyom = "その他テスト"; // 初期表示業務
unum = "";
func_ListPage();
} else {
var arr = tmp.split(",");
page = arr[0];
gyom = arr[1];
unum = arr[2];
if (page == "?LST") {
func_ListPage();
} else {
func_RecPage()
}
}
}
function go_RecPage(num) {
unum = num;
location.href = "MONPYO2.hta?REC" + "," + gyom + "," + unum;
}
function go_ListPage() {
location.href = "MONPYO2.hta?LST" + "," + gyom + "," + unum;
}
function go_ReLoad() {
gyom = document.getElementById('selGYM').options.value;
location.href = "MONPYO2.hta?LST" + "," + gyom + ",QA-ZZ-0000";
}
function go_NewRec() {
location.href = "MONPYO2.hta?REC" + "," + gyom + ",NEW";
}
function func_ListPage() {
window.resizeTo(1120,800);
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=G:/MONPYO/MONPYO2.mdb");
var mySql = "SELECT T_MONPYO.業務名 FROM T_MONPYO GROUP BY T_MONPYO.業務名";
try {
var rs = cn.Execute(mySql);
} catch (e) {
cn.Close;
document.write('検索対象テーブル検索不能' + e);
alert("検索対象テーブル検索不能" + e);
return ;
}
var str = "<body bgcolor=#dedede>";
str += '<form><table border="0" bgcolor="#ffffff">';
str += '<tr bgcolor="#CCCCFF"><td colspan="3"><select name="selGYM" onchange="go_ReLoad()" style="font-family:HGゴシックM">';
while (!rs.EOF){
if (rs(0).value == gyom) {
str += '<option value="' + rs(0).value + '" selected>' + rs(0).value + '</option>';
} else {
str += '<option value="' + rs(0).value + '">' + rs(0).value + '</option>';
}
rs.MoveNext();
}
str += '</select></td><td colspan="2" align="center"><a href="#" onClick="go_NewRec()">新規追加</a></td></tr>';
rs.Close();
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">受 付 №</td>';
str += '<td bgcolor="#CCCCFF">概 要</td>';
str += '<td bgcolor="#CCCCFF">担 当</td>';
str += '<td bgcolor="#CCCCFF">希 望</td>';
str += '<td bgcolor="#CCCCFF">状 況</td></tr>';
var mySql = "SELECT 受付No,概要,所属,format(回答予定日,'YYYY/MM/DD'),受付状況 FROM T_MONPYO WHERE 業務名 = '" + gyom + "' ORDER BY 受付日時 DESC";
try {
var rs = cn.Execute(mySql);
} catch (e) {
cn.Close;
document.write('検索対象テーブル検索不能');
alert("検索対象テーブル検索不能");
return ;
}
var tmp = "";
while (!rs.EOF){
str += '<tr>';
str += '<td bgcolor="#ffffff" align="center">' + rs(0).value + ' </td>';
tmp = "'" + rs(0).value + "'";
str += '<td bgcolor="#ffffff" width="660">' + '<a href="#" onClick="go_RecPage(' + tmp + ')">' + rs(1).value + '</a></td>';
str += '<td bgcolor="#ffffff" align="center">' + rs(2).value + ' </td>';
str += '<td bgcolor="#ffffff" align="center">' + rs(3).value + ' </td>';
str += '<td bgcolor="#ffffff" align="center">' + rs(4).value + ' </td></tr>';
rs.MoveNext();
}
str += '</table>';
document.write(str);
rs.Close();
cn.Close();
rs = null;
cn = null;
}
function func_RecPage() {
window.resizeTo(800,840);
var str = "<body bgcolor=#dedede>";
if (unum == "NEW") {
var data = new Array();
for (var i = 0; i < 26; i++) {data[i] = "";}
var now = new Date();
data[1] = toLocaleString(now) + ' ' + now.toLocaleTimeString().slice(0,5);
data[2] = toLocaleString(now);
data[4] = "QA-ZZ-0000";
data[5] = "受付";
data[11] = "問合せ";
data[12] = gyom;
} else {
var mySql = "SELECT format(完了日,'YYYY/MM/DD'),"
+ "format(受付日時,'YYYY/MM/DD HH:MM'),"
+ "format(回答予定日,'YYYY/MM/DD'),"
+ "format(回答日時,'YYYY/MM/DD HH:MM'),*"
+ " FROM T_MONPYO WHERE 受付No = '" + unum + "'";
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=G:/MONPYO/MONPYO2.mdb");
try {
var rs = cn.Execute(mySql);
} catch (e) {
cn.Close;
document.write('検索対象テーブル検索不能');
alert("検索対象テーブル検索不能");
return;
}
var data = new Array();
for (var i = 0; i < 26; i++) {
data[i] = rs(i).value;
}
rs.Close();
cn.Close();
rs = null;
cn = null;
}
str += '<form><table border=0><tr><td align=left><input type="button" value="一覧に戻る" onClick=go_ListPage()>';
if (unum == "NEW") {
str += ' <input type="button" value="登録する" onClick="func_insRec()">';
} else {
str += ' <input type="button" value="更新する" onClick="func_updRec()">';
}
str += '</td></tr>';
str += '<tr><table border="1" bgcolor="#ffffff"><tr align="center">';
str += '<td bgcolor="#CCCCFF">受付状況 </td><td>';
str += '<input type="text" name="ujk" style="font-family:HGゴシックM;text-align:center" value="' + data[5] + '"></td>';
str += '<td bgcolor="#CCCCFF">完 了 日 </td><td>';
str += '<input type="date" name="krb" style="font-family:HGゴシックM;text-align:center" value="' + data[0] + '"></td>';
str += '<td bgcolor="#CCCCFF">受付日時 </td><td>';
str += '<input type="date" name="ukb" style="font-family:HGゴシックM;text-align:center" value="' + data[1] + '"></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF"><b>受 付 №<font size="1" color="#FF3366">※</td></b><td colspan="3" align="left">';
str += ' <input type="text" name="qno" style="font-family:HGゴシックM;font-weight:bold" size=22 value="' + data[4] + '"></td>';
str += '<td bgcolor="#CCCCFF">部門コード </td><td>';
str += '<input type="text" name="bmn" style="font-family:HGゴシックM;text-align:center" value="' + data[8] + '"></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">発信者所属</td><td colspan="3" align="left">';
str += '<input type="text" name="szk" style="font-family:HGゴシックM" size=54 value="' + data[9] + '"> </td>';
str += '<td bgcolor="#CCCCFF">発 信 者 </td><td>';
str += '<input type="text" name="qnm" style="font-family:HGゴシックM;text-align:center" value="' + data[10] + '"></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">要件区分<font size="1" color="#FF3366"><b>※</b></td><td>';
str += '<input type="text" name="ykb" style="font-family:HGゴシックM;text-align:center" value="' + data[11] + '"></td>';
str += '<td bgcolor="#CCCCFF">業務名 <font size="1" color="#FF3366"><b>※</b></td><td>';
str += '<input type="text" name="gyo" style="font-family:HGゴシックM;text-align:center" value="' + data[12] + '"></td>';
str += '<td bgcolor="#CCCCFF">連絡先 <font size="1" color="#FF3366"><b>※</b></td><td>';
str += '<input type="text" name="tel" style="font-family:HGゴシックM;text-align:center" value="' + data[13] + '"></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">概 要<font size="1" color="#FF3366"><b>※</b></td><td colspan=5 align="left">';
str += '<input type="text" name="gai" style="font-family:HGゴシックM" size=89 style="font-family:HGゴシックM" value="' + data[14] + '"> </td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">内 容<font size="1" color="#FF3366"><b>※</b></td><td colspan=5 align="right">';
str += '<textarea rows=15 name="nai" cols=88>' + data[15] + '</textarea></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">回答予定日</td><td>';
str += '<input type="date" name="yti" style="font-family:HGゴシックM;text-align:center" value="' + data[2] + '"></td>';
str += '<td bgcolor="#CCCCFF">添付資料名</td><td colspan="3" align="left">';
str += '<input type="text" name="tpf" style="font-family:HGゴシックM" size=54 value="' + data[17] + '"> </td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">回 避 策 </td><td colspan=5 align="left">';
str += '<input type="text" name="kih" style="font-family:HGゴシックM" size=89 value="' + data[18] + '"> </td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">回答内容<font size="1" color="#FF3366"><b>※</b></td><td colspan=5 align="right">';
str += '<textarea rows=15 name="ans" cols=88>' + data[19] + '</textarea></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">回答日時 </td><td>';
str += '<input type="date" name="asb" style="font-family:HGゴシックM;text-align:center" value="' + data[3] + '"></td>';
str += '<td bgcolor="#CCCCFF">回答添付 </td><td colspan="3" align="left">';
str += '<input type="text" name="ktp" style="font-family:HGゴシックM" size=54 value="' + data[21] + '"> </td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">回答者所属</td><td>';
str += '<input type="text" name="ksz" style="font-family:HGゴシックM;text-align:center" value="' + data[22] + '"> </td>';
str += '<td bgcolor="#CCCCFF">回 答 者<font size="1" color="#FF3366"><b>※</b></td><td>';
str += '<input type="text" name="knm" style="font-family:HGゴシックM;text-align:center" value="' + data[23] + '"></td>';
str += '<td bgcolor="#CCCCFF">承 認 者<font size="1" color="#FF3366"><b>※</b></font></td><td>';
str += '<input type="text" name="snm" style="font-family:HGゴシックM;text-align:center" value="' + data[24] + '"></td></tr>';
str += '<tr align="center">';
str += '<td bgcolor="#CCCCFF">備 考 </td><td colspan=5 align="left">';
str += '<input type="text" name="bko" style="font-family:HGゴシックM" size=89 value="' + data[25] + '"> </td></tr>';
str += '</table><font size="1" color="#FF3366"><b>※</b></font><font size="2" color="#000077">は必須項目</font></tr></table></form>';
str = str.replace(/null/g,"");
document.write(str);
}
function func_insRec() {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=G:/MONPYO/MONPYO2.mdb");
var mySql = "SELECT * FROM T_MONPYO WHERE 受付No = '" + document.getElementById('qno').value + "'";
try {
var rs = cn.Execute(mySql);
} catch (e) {
cn.Close;
alert("更新対象テーブル接続不能" + e);
return;
}
if (!rs.EOF){
cn.Close();
var element = document.getElementById("qno");
element.focus();
alert("既に登録済みの質問番号です!");
return;
}
var mySql = "INSERT INTO T_MONPYO VALUES(";
unum = document.getElementById('qno').value; mySql += "'" + unum + "'"; // 受付№
var tmp = "";
tmp = document.getElementById('ujk').value; mySql += ",'" + tmp + "'"; // 受付状況
tmp = document.getElementById('krb').value; // 完了日
if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; }
tmp = document.getElementById('ukb').value; // 受付日時
if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; }
tmp = document.getElementById('bmn').value; mySql += ",'" + tmp + "'"; // 部門コード
tmp = document.getElementById('szk').value; mySql += ",'" + tmp + "'"; // 所属
tmp = document.getElementById('qnm').value; mySql += ",'" + tmp + "'"; // 発信者
tmp = document.getElementById('ykb').value; mySql += ",'" + tmp + "'"; // 要件区分
tmp = document.getElementById('gyo').value; mySql += ",'" + tmp + "'"; // 業務名
tmp = document.getElementById('tel').value; mySql += ",'" + tmp + "'"; // TEL
tmp = document.getElementById('gai').value; mySql += ",'" + tmp + "'"; // 概要
tmp = document.getElementById('nai').value; mySql += ",'" + tmp + "'"; // 内容
tmp = document.getElementById('yti').value; // 回答予定日
if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; }
tmp = document.getElementById('tpf').value; mySql += ",'" + tmp + "'"; // 添付資料名
tmp = document.getElementById('kih').value; mySql += ",'" + tmp + "'"; // 回避策
tmp = document.getElementById('ans').value; mySql += ",'" + tmp + "'"; // 回答内容
tmp = document.getElementById('asb').value; // 回答日時
if (tmp == "") { mySql += ",null"; } else { mySql += ",'" + tmp + "'"; }
tmp = document.getElementById('ktp').value; mySql += ",'" + tmp + "'"; // 回答添付資料
tmp = document.getElementById('ksz').value; mySql += ",'" + tmp + "'"; // 回答者所属
tmp = document.getElementById('knm').value; mySql += ",'" + tmp + "'"; // 回答者
tmp = document.getElementById('snm').value; mySql += ",'" + tmp + "'"; // 承認者
tmp = document.getElementById('bko').value; mySql += ",'" + tmp + "')"; // 備考
try {
var rs = cn.Execute(mySql);
alert("対象テーブル登録完了");
} catch (e) {
cn.Close;
alert("対象テーブル登録失敗 " + e + mySql);
return;
}
cn.Close();
rs = null;
cn = null;
}
function func_updRec() {
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=G:/MONPYO/MONPYO2.mdb");
var mySql = "UPDATE T_MONPYO SET ";
var tmp = "";
tmp = document.getElementById('ujk').value; mySql += "受付状況 = '" + tmp + "'";
tmp = document.getElementById('krb').value; //
if (tmp == "") { mySql += ",完了日 = null"; } else { mySql += ",完了日 = '" + tmp + "'"; }
tmp = document.getElementById('ukb').value; //
if (tmp == "") { mySql += ",受付日時 = null"; } else { mySql += ",受付日時 = '" + tmp + "'"; }
tmp = document.getElementById('bmn').value; mySql += ",部門コード = '" + tmp + "'";
tmp = document.getElementById('szk').value; mySql += ",所属 = '" + tmp + "'";
tmp = document.getElementById('qnm').value; mySql += ",発信者 = '" + tmp + "'";
tmp = document.getElementById('ykb').value; mySql += ",要件区分 = '" + tmp + "'";
tmp = document.getElementById('gyo').value; mySql += ",業務名 = '" + tmp + "'";
tmp = document.getElementById('tel').value; mySql += ",TEL = '" + tmp + "'";
tmp = document.getElementById('gai').value; mySql += ",概要 = '" + tmp + "'";
tmp = document.getElementById('nai').value; mySql += ",内容 = '" + tmp + "'";
tmp = document.getElementById('yti').value;
if (tmp == "") { mySql += ",回答予定日 = null"; } else { mySql += ",回答予定日 = '" + tmp + "'"; }
tmp = document.getElementById('tpf').value; mySql += ",添付資料名 = '" + tmp + "'";
tmp = document.getElementById('kih').value; mySql += ",回避策 = '" + tmp + "'";
tmp = document.getElementById('ans').value; mySql += ",回答内容 = '" + tmp + "'";
tmp = document.getElementById('asb').value;
if (tmp == "") { mySql += ",回答日時 = null"; } else { mySql += ",回答日時 = '" + tmp + "'"; }
tmp = document.getElementById('ktp').value; mySql += ",回答添付資料 = '" + tmp + "'";
tmp = document.getElementById('ksz').value; mySql += ",回答者所属 = '" + tmp + "'";
tmp = document.getElementById('knm').value; mySql += ",回答者 = '" + tmp + "'";
tmp = document.getElementById('snm').value; mySql += ",承認者 = '" + tmp + "'";
//(以降コメントに続く)
![](https://blogimg.goo.ne.jp/user_image/77/95/67667e3cf4776cad5f8ce4aaeb5ba30f.jpg)
![](https://blogimg.goo.ne.jp/user_image/17/d1/2be39c645edd85ad4f394bc3b6ef74c9.jpg)