見出し画像

Re:SALOON & VBA

HTA + Javascript 問合せ票管理 Ver.2

HTA + Javascript 問合せ票管理
簡易化改良版です。

更新画面を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 + "'";
//(以降コメントに続く)



コメント一覧

frontflug
ブログオーナー
溢れた分の続き
// ↓本文からの続き(20000文字溢れ分)

 tmp = document.getElementById('bko').value; mySql += ",備考 = '"     + tmp + "'";
 unum = document.getElementById('qno').value; mySql += " WHERE 受付No = '" + unum + "'";
 try {
  var rs = cn.Execute(mySql);
  alert("対象テーブル更新完了");
 } catch (e) {
  cn.Close;
  alert("対象テーブル更新失敗 " + e + mySql);
  return;
 }
 cn.Close();
 rs = null;
 cn = null;
}
function toLocaleString( date ) {
  return [
    date.getFullYear(),
    date.getMonth() + 1,
    date.getDate()
    ].join( '/' );
}
</script>
<style type="text/css">
</style>
</head>
<body><basefont face="HGゴシックM">
<script>
 func_init();
</script>
</body>
</html>
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

※ブログ作成者から承認されるまでコメントは反映されません。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「HTA」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事