2013年2月6日水曜日

最新郵便番号辞の更新手順



  1. 郵便番号の入力で住所を変換させるときに使用している¥ajaxzip2¥workに
    http://www.post.japanpost.jp/zipcode/dl/kogaki.html から
    都道府県一覧の全国一括から(ken_all.lzh)ファイルをダウンロードします。
  2. 同じフォルダ内にhttp://www.post.japanpost.jp/zipcode/download.html から
    事業所の個別郵便番号(jigyosho.lzh)ファイルをダウンロードします。
  3. 上記2つのlzhファイルを同じフォルダに解凍するとCSVファイルが2つ作成されます。
  4. 同じフォルダ内にあるcsv2jsonzip.plをダブルクリックします。
    自動的にコマンドプロンプトの画面になりデータが生成されます。
  5. ローカルでテスト後、サーバ側にアップする場合、リモートアクセスが可能であれば
    2つのCSVファイルとplファイルを転送し、plを実行すればサーバ側も更新されます。

2012年10月31日水曜日

CSVファイルの取り込み後のデータをDBに追加するには


call DbOpen  'DB接続モジュール

  MySQL = "SELECT * FROM テーブル名"
  MyREC.Open MySQL, MyRDB, 3, 3, 1

  Set fs = CreateObject("Scripting.FileSystemObject")
  filename=server.mappath("../k_mem/" & newf1)
  Set readfile=fs.OpenTextFile(filename,1,False)

  Do while not readfile.atendofstream
    count=count+1
     if count>1 then
      Text=readfile.readline
       data = split(Text, ",")   'CSV ファイルは,で分割されている前提
       MyREC.addnew
      MyREC(列名A)=right(100000000000+data(2),10)  'CSV3要素目のデータで桁数併せ                                       のため0で穴埋め
      MyREC("列名B")=data(3)               '4要素目のデータ
      MyREC("列名C")="01"                 'CSVから取り込まず、固定値
      MyREC.update
      dummy=left(data(1),10)
    end if
  loop
  readfile.close
  set readfile=nothing
  set fs=nothing

call c_DbClose()  'DB切断モジュール

★例: Split(text ,",",3,1) カンマ区切りデータの3要素をテキスト形式で比較します。

     Split(text ,",") カンマ区切りデータの全ての要素をバイナリ形式で比較します。

2012年8月16日木曜日

テーブルをそのままコピーするには

既存テーブルをデータごとコピーしたいときは(Microsoft SQL)

  SELECT * INTO 新テーブル名 FROM 元テーブル名

新テーブルは前もってデータの定義をする必要などありませんが
KEY属性はコピーされないので、コピー後設定します。



2012年8月7日火曜日

リンク先の変更モジュール

アップロード先のサーバのディレクトリーがLocalと異なっており、参照テーブルがある場合、
Loacalでリンクテーブルの参照先を前もって変更しておく必要があります。
以下モジュールを実行後、サーバにアップします。



Option Compare Database
Option Explicit
Sub リンク先DBの変更()
    Dim strOldPath As String
    Dim strNewPath As String
   
    'strOldPath = リンク元のファイルのパス(変更前)
    'strNewPath = リンク元のファイルのパス(変更後)
   
    strOldPath = "F:\AAAA\BBBB.mdb"
    strNewPath = "D: \AAAA\BBBB.mdb "
   
   
    Dim tbl As TableDef
    For Each tbl In CurrentDb.TableDefs
        If (tbl.Connect <> "") Then
            tbl.Connect = Replace(tbl.Connect, strOldPath, strNewPath)
            tbl.RefreshLink
        End If
    Next

End Sub



2012年6月22日金曜日

連番を初期化


  1. テーブルのデータを削除後、連番を初期化する場合
    DBCC CHECKIDENT ("テーブル名", RESEED,0)
        1からスタートします。
  2. テーブルのデータを一部削除後、最大値の追番を振りたい場合
    DBCC CHECKIDENT ("テーブル名", RESEED,3)
      4からスタートします。

2012年6月16日土曜日

Webサイトにデータベースの内容を表示せず、ダイレクトにexcelファイルで保存するには

Webサイトにデータベースの内容を表示せず、ダイレクトにexcelファイルで保存するには

  1. <meta><html>を以下設定に変更します。
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
    </head>
    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">

      ※ charset=shift_jis" は文字化けを防ぐ為
  2. <html>内でデータベースにアクセスし<table>タグを利用してデータをかきだします。
    列名は MyREC.fields(i).nameで取得することができます。
  3. エクセルに出力したときに数字-数字や数字/数字で表示されている列は
    日付けとして出力してしまうので str を使って文字列として出力させます。

    response.write "<td x;str>" & MyREC(i) & "</td>"
  4. </html>の下に以下を追加します。
    <%
       response.flush   'バッファに格納されているデータを出力
         response.end      'aspの処理を終了
    %>

ラジオボタンが小さくてタップしにくい

PC用のサイトのまま、スマートフォン用にラジオボタンの縦横の幅を大きくすると
PC用画面での見栄えが悪くなってしまいます。
とりあえずの方法として
  1. CSSに以下を追加 (文字列を少し大きめに)
    label  {
      font-size:1.2em;
    }
  2. ラジオボタンの前後を<label>で囲む
      <label onclick="radio_on;">
        <input type="radio" name="xxx" value="yyy" onclick="function2;" />文字列
        </label>
  3. function1に該当する部分をダミーで作成
    <script type="text/javascript">
       function radio_on() {

       }
    </script>
  ※ラジオボタンを<label>で囲むことで文字列の領域もタップの範囲となります。
   onclick部分がないとiPhoneでは正しく動作しません。