ラベル の投稿を表示しています。 すべての投稿を表示
ラベル の投稿を表示しています。 すべての投稿を表示

2018年6月29日金曜日

同じ時刻じゃないの?!!という罠


?cdate("2014/01/02 16:05:00") = dateadd("n",5,cdate("2014/01/02 16:00:00"))
False
?cdate("2014/01/02 16:05:00") - dateadd("n",5,cdate("2014/01/02 16:00:00"))
7.27595761418343E-12

おかしいでしょう! 16:05:00は16:00:00に5分足すじゃない!
参考ここ:
https://www.reddit.com/r/vba/comments/5mdnpb/pic_of_my_data_mismatch_problem/
http://www.fmsinc.com/tpapers/math/index.html

DateDiff("s", cdate("2014/01/02 16:05:00"), dateadd("n",5,cdate("2014/01/02 16:00:00"))) = 0


2017年9月7日木曜日

「_xlfn.IFERROR」という #NAME?エラー見えない「名前定義」にエラーがあった場合

下記の王なメソッドを作って、一旦エラーになっている名前定義を見える化にして、そして「名前」一覧から手動で削除して、ブックを保存
Sub delErrNames()
Dim n As name
Dim bk As Workbook
Set bk = ThisWorkbook

For Each n In bk.Names
    If n.RefersTo = "=#NAME?" Then
      n.Visible = True
    End If
Next
End Sub

2017年6月9日金曜日

GHOST BREAKPOINT,VBA ブレークポイント設置してないのに、急にいちいち止まるようになる件

解決方法
1.Debugに入って(そもそも止まらないなら、とりあえずなんかのsubを作成して、PBを置いて止める)
2.Ctrl+Pauseを2回押す
3.Playで継続
4.保存

2017年3月15日水曜日

VBA DLL を正しく呼び出せません (エラー 49)

SubもFunctionもパラメーターの前にByValかByRefかをきちんと書こう!

2017年1月31日火曜日

PHPにアップロードできるファイルサイズの上限を決めるupload_max_filesizeとpost_max_size

upload_max_filesize を50Mにするだけは取りない、post_max_sizeも忘れるな!
php.iniの中にある。
アプリのConfigにも制限あるかもしれないので、要注意

2016年12月6日火曜日

ADOレコーダーがあるのに、RecordCountが「-1」の場合の対処

レコーダーがあるのに、RecordCountが「-1」の場合の対処

connect.CursorLocation = 3 'クライアントカーソルにする
Set rs = execQuery(cn, sql, , adOpenKeyset, adLockOptimistic)
debug.print rs.RecordCount

2016年7月15日金曜日

ado,sqlのunderline…自分かバカすぎで笑えない

sqlではアンダーライン"_"は、任意の一文字って意味か、ADOでもMysqlでも...、やられた、ADOでは"[]"でエスケープする、sqlでは"\"でエスケープする。
正規表現とごっちゃまぜしちゃダメよ。(;_;)


SELECT * FROM tbl WHERE tname LIKE 'abc[_]%'

SQL

SELECT * FROM tbl WHERE tname LIKE 'abc\_%'

2016年6月30日木曜日

VBAのRoundの罠

ROUND(38.5)
結果:38

ROUND(39.5)
結果:40

「銀行家の丸め (bankers' rounding)」、「銀行丸め」ともいう。
5が切り捨てられたり切り上げられたりするので「五捨五入」と呼ばれたり、
端数がちょうど0.5の場合に整数部分が偶数なら切り捨て奇数なら切り上げる
ので「偶捨奇入」と呼ばれたりもする。



本当の「四捨五入」したい場合は

WorksheetFunction.Round()

が有効だそうです。
しかし、ADODB,Jet.OLEDBなどでQuery(クエリー)で運用時は使えないので

sql = "UPDATE MyTable SET `Ammount` = ROUND(35*1.1)"
Call csv_cn.Execute(sql)

=ROUND(38.5) = 38



sql = "UPDATE MyTable SET `Ammount` = FORMAT(35*1.1,""#"")"
Call csv_cn.Execute(sql)

=ROUND(38.5) = 39

ちなみに、小数点以下2位の四捨五入は

sql = "UPDATE MyTable SET `Ammount` = FORMAT(35*1.111,""#.00"")"
Call csv_cn.Execute(sql)




2016年3月26日土曜日

OSが64bitでも64bitのODBC Connectorを使ってはいけません!Officeのbit数を確認べし…そうなの?!!

ぬぬぬ、罠だ!
64bitのOSも絶対64bitのMySQL Connector/ODBC

https://dev.mysql.com/downloads/connector/odbc/

64bitを使うと
「データ ソース名および指定された既定のドライバーが見つかりません」がでます

32bitを使うとすーっと通る

なぜた?!!!

うわー、Officeが32bitじゃん!!バカが!!!っと脱力した…

2015年5月30日土曜日

急にEclipseのBreakPointに止まれなくなった。

急にEclipseのBreakPointで止まれなくなった。

現象:
Optionによって一行目は止まるけど、それ以降全然止まらない、Step InしてもStep Overになります。

試み:
Sessionを止めったり再開したり、Eclipse自体を再起動する、またはOSを再起動、Apacheを再起動しても治らない

罠:
一旦BreakPointsを全部削除して、再設定したら、なぜか直りました…ちくしょー

2014年12月28日日曜日

乗っ取られたかとマジでビビった!「WinSAT.exe」

先ほど、パソコンの画面が一瞬ブリンクした(Windows Aeroが無効になった)、症状は「リモードデスクトップ」系に入られた感じと同じ、1分後また勝手に戻った。
ちょっとビビリましたよ、誰かのハッカーにパソコン乗っ取られたかと思った。
早速タスクマネージャー立ち上がってプロセスチェック、一つ怪しいプロセス発見しました。

→「WinSAT.exe」

なんどこれと早速ググってみたら、はWindows評価機能らしいです。
なんだ、マイクロソフトかよ!!もうおどかせないでくれ!と早速無効にしました。

「コントロールパネル」→「管理ツール」→「タスクスケジューラ」ー→「タスクスケジューラライブラリ」→「Microsoft」→「Windows」→「Maintenance」→「WinSAT」→「右クリック」→「無効」
参照:http://d.hatena.ne.jp/trigger7/20101211/1292084975

2014年7月28日月曜日

Cent OS6でresolv.confが勝手に書き換わる

Cent OS6でresolv.confが勝手に書き換わる
ここ、おおきに参考になりました、ありがとうございます。

要するに、おとなしく「ifcfg-ethX」の中にDNSを明記すればいいですね。※PEERDNS=noを入れないように。

2014年1月21日火曜日

「データ入力規則」についてExcel2010と2007の互換性

現象:
「データ入力規則」が消えた!?
  1. Excel2010で作ったシートに、「データ入力規則」で別シートのセルを参照した
  2. Excel2003又はExcel2007で開いたら、ドロップダウンリストが消えました
  3. しかも「データ入力規則」で別シートのセルを参照し直そうとすると、電子レンジが「チン~!」
  4. 「え?!これもしかして互換性?2010と2007にそんな差があったとは思わなかった」


解決方法:

  1. 別シート参照したいセル(範囲)に名前を付けて
  2. 「データ入力規則」で「リスト」を選択して、「元の値」で「F3」
  3. 定義済みの名前を選択


MSって馬鹿だね...





2012年9月27日木曜日

今日知った、mysqlの罠、ハァ・・(ノω=;)

今日の罠(常識かも)
①mysqlのクエリーでは「○○ <> True」使わない方がいいです。NULLのものが入ってこないから。
「○○ = False or ○○ IS NULL」が正解

②「union」では勝手に一意してくれるから、そうさせたくないときは「union all」

2012年9月21日金曜日

住所をマッピングする為に、mysqlのLEFTとINSTRで関数で住所の検索キーを生成

まずは町、区、市、郡まで切り捨て

ALTER TABLE company_nikkei ADD shi_addr_key VARCHAR( 255 ) NULL;
UPDATE company_nikkei SET shi_addr_key =
LEFT(address,CASE
WHEN INSTR(address,'町') <> 0 THEN INSTR(address,'町')
WHEN INSTR(address,'区') <> 0 THEN INSTR(address,'区')
WHEN INSTR(address,'市') <> 0 THEN INSTR(address,'市')
WHEN INSTR(address,'郡') <> 0 THEN INSTR(address,'郡')
END);

そして、もっと大雑把、都道府県

ALTER TABLE company_nikkei ADD to_addr_key VARCHAR( 255 ) NULL;
UPDATE company_nikkei SET to_addr_key = CASE WHEN INSTR(address,'東京都') <> 0 THEN '東京都'
WHEN INSTR(address,'北海道') <> 0 THEN '北海道'
WHEN INSTR(address,'大阪府') <> 0 THEN '大阪府'
WHEN INSTR(address,'京都府') <> 0 THEN '京都府'
WHEN INSTR(address,'県') <> 0 THEN LEFT(address,INSTR(address,'県'))
WHEN INSTR(address,'市') <> 0 THEN LEFT(address,INSTR(address,'市'))
ELSE '不明' END;

DBのエンコードはUTF8だけど、データ自体のエンコードはsjisになっている。
windowsのコマンドプロンプトからmysqlのコンソールにアクセスしているので、
上記クエリーを投げでもなぜかうまくいかない...

ここですごい人に見てもらって、どうもコマンドプロンプトのエンコードのせいかも
コマンドプロンプトのエンコードを変えるコマンドchcp(change code page)

>chcp
現在のコード ページ: 932
> chcp 65001
↑UTF8

とにかく、DOSのコマンドプロンプトで2バイドのものは書かないで
phpmyadminやnavicatなどSQLクライアントを使いましょう。

2012年9月5日水曜日

vba条件書式の罠

現象:vbaで条件書式を追加したら、訳がわからない条件が追加される、Excel2007
下のコードで「C1」セルに、自分自身がエラーの場合、背景色を変える条件書式を追加したところ
Sub test()
    Sheet1.Range("C1").FormatConditions.Delete
    Sheet1.Range("C1").FormatConditions.Add Type:=xlExpression, Formula1:="=ISERROR(C1)"
    Sheet1.Range("C1").FormatConditions(1).Interior.ColorIndex = 38
End Sub
実行後、出来た数式を見てみると、なんだこりゃ~?!「ISERROR(C1)」と指定したのに、「XFD1」とはなんだ?!!



試しに絶対参照の「ISERROR($C$1)」にしてみたら、治った(当たり前だ)。でも絶対参照だとソートとかしたら大変なことになるので...
まぁ、最後はこうして治ったけど、なんか腑に落ちないな~
Sub test()
    Sheet1.Activate
    Sheet1.Range("C1").Select
    Sheet1.Range("C1").FormatConditions.Delete
    Sheet1.Range("C1").FormatConditions.Add Type:=xlExpression, Formula1:="=ISERROR(C1)"
    Sheet1.Range("C1").FormatConditions(1).Interior.ColorIndex = 38
End Sub

2011年9月16日金曜日

disabledとreadonly

なるほど、書込み禁止の要素結構ありますね、見た目の関係でよくreadonlyを使わずdisabledを使います。

<input name="score" disabled="disabled" value="100" />

しかしdisabledは「使用禁止」という意味ですから、valueはForm送信されないらしい。やはりreadonlyを使うべきだね。

<input name="score" readonly="readonly" value="100" />

見た目はCSSで頑張りましょう
input[readonly=readonly] {
	border: 1px solid #556f8c;
	color: #0a0809;
	text-shadow: 0 -1px 0 #DFE5D7;
	background: -moz-linear-gradient(top, #f6f6f6 0%, #e1e1e1 100%); /* firefox */
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e1e1e1), color-stop(100%,#afafaf)); /* webkit */
}

2011年8月24日水曜日

ruby on rails, cakephpなどlogが書かれない場合

今日、凄くはまりました、自分はアホかと思った。

Railsを使って開発しますが、logファイルが作れない。
環境設定等もバッチリと思いますけどなぜ?!!

結局、logディレクトリのmodでした、書き込み権限がないんだ!

今度何かログが書かれないことがあったら、まずこいう順番で調べようと思った

1.設定は問題ないか。environment.rbなど、ログレベルとか
2.ログ出力先のディレクトリの有無、なければ作る、そして書き込み権限、開発機なら777にしておこう、念のため tmpも777にしましょう
3.複数システム存在している場合、ちゃんと意図したものを見ているかどうかを確認

全部当たり前のことだけど、私はハマっちゃったToT

2010年11月1日月曜日

IE6,IE7エラー「識別子、文字列または数がありません」

IE6,IE7で「識別子、文字列または数がありません」が出ています。IE8、Firefox、chrome、Operaはでません。

IE6,IE7では簡単にデバグ出来ないので、問題点の特定に時間を掛てしまった。

問題点はこれです:

var columnsClassStatus = {
    NAME : {title:"キャンペーン",width:"wd_l",},
    GROUP : {title:"グループ",width:"wd_l",},
    CPA : {title:"CPA",width:"wd_m",},
};

オブジェクトまたは配列の最後のエレメントの後ろ「,」があってはなりません。

var columnsClassStatus = {
    NAME : {title:"キャンペーン",width:"wd_l"},
    GROUP : {title:"グループ",width:"wd_l"},
    CPA : {title:"CPA",width:"wd_m"}
};

にするIE6とIE7ではエラーは解消されます。

2010年10月25日月曜日

jQueryではの変数名と関数名が一緒ではならない

「isBackofficeはfunctionではない」と怒られます。
var isBackoffice;
isBackoffice = isBackoffice();
function isBackoffice(){
    return false;
}

こうすればエラーは消えました。

var isBackofficeVal;
isBackofficeVal = isBackoffice();
function isBackoffice(){
    return false;
}

なぜでしょうかね、jQueryでは変数も関数もobjectだからかな?