2011年1月26日水曜日

【Office Access関連】Access2007にて「定義されているフィールドが多すぎます」と表示された場合

お疲れ様です。
ハマりそうだったので備忘録します。

Access2007にてテーブルを作成、または既フィールドの変更等を行なっている時
テーブルを保存する場合に
「定義されているフィールドが多すぎます」と表示され
うまくテーブルを保存することが出来ない現象が発生します。

考えられる原因として

1.定義可能なフィールド数255を超えている

があります。
ただし、「255もフィールドないぞ?!」という方もいらっしゃるかもしれません。
私もその一人でした。

その場合は次のAccessの仕様の可能性が高いです。

「Accessの内部でフィールド定義数のカウンター値が用意されており、フィールド定義時に加算されるが、フィールドの型などを変更した際にも加算され、フィールド削除時は減算されない仕様」

とのことです。つまり・・・

150のフィールドを定義した後、150フィールドの型を変更した場合は
150+150=300となり、255を超えているので定義されている~メッセージが表示されるということです。

解決方法は

「最適化」

これだけですみます。

意外に分からなかった方も多いのではないでしょうか。

以上です。

2011年1月6日木曜日

【VB関連】メッセージボックス内での改行方法

お疲れ様です。

新年明けましておめでとうございます。
今年もよろしくお願い致します。

新年初の投稿です。

何度も調べなおすので備忘録します。

メッセージボックス内で改行する場合は

例)Msgbox "abc" & vbCrLf & "123"

となります。

以上

2010年12月18日土曜日

【PHP関連】改行文字を
タグに変える関数の使いどころについて

お疲れ様です。

何回も忘れるので備忘録します。

メールフォーム等で、ユーザが入力した項目を確認画面にて表示する場合、
Postされたデータだと、改行された文字データに
タグが入っていないため
改行されずに、続けて表示されてしまいます。
それを防ぐには、Postするデータにnl2br関数を通します。
この関数は改行コードをbrタグに変えてくれるので、確認画面でも改行されて
表示されます。

ただし、nl2b関数を通したデータをそのまま利用すると、
brタグまでも表示されますので
確認画面だけはnl2br関数を通す、という使い方がいいでしょう。

以上


2011.05.15追記
上記ですが
DBに登録する際は、特に処理をする必要はありません!!
DBには特に処理せずそのまま登録し
出力する際にDBから参照したデータにnl2br関数を通せば
出力時に改行されます。

なのでDB登録時はそのまま、出力時にnl2br関数を通すと覚えましょう。

以上

2010年11月26日金曜日

【PHP関連】文字列にある○文字目の表現方法について

お疲れ様です。

タイトルの件で詰まったことがありましたので
備忘録します。

例えば
$str = "ABCD";

とあった場合

echo $str[1];

とすれば、なんと"B"が表示されます!!

配列っぽいな~と思いますが、こういう書き方もあるということです><
(可読性についてはちょっと問題ですが・・・)

参考サイト:ありがとう。また会おう。様
■[PHP][ネタ]文字列中のn文字目にアクセスする方法
http://d.hatena.ne.jp/m_norii/20080818/1219066712

ありがとうございました。

以上

2010年11月18日木曜日

【VB関連】配列を宣言するには

お疲れ様です。

現在業務で、既にAccess97で作成されたシステムを分析しているのですが
そこで見慣れない変数定義箇所があり、詰まったので備忘録。

例)
Dim test(30,6) As Double

この宣言方法は配列を宣言しているとのことです。
この場合2次元配列になります。
始めは括弧の意味がわからず、四苦八苦してました(笑)

ちなみに、1次元配列は

Dim test(30) As Double

これでいけます。

ちなみにPHPと違って
添え字の数がプラス1されるのでご注意です。
例で宣言した


Dim test(30) As Double

この場合は test[0] ~ test[30] の31個の箱が用意されることになります。

以上です。