1.Close PPT if it's running
2.In REGEDIT, go to HKCU\Software\Microsoft\Office\xx.0\PowerPoint\Options (where xx.0 is 11.0 for 3.Office 2003, 12.0 for Office 2007, 14.0 for Office 2010)
4.Add DebugAddins a DWORD=1
5.Quit regedit.
thx
http://stackoverflow.com/questions/5129362/powerpoint-2007-2010-vba-ppam-add-in-does-not-show-up-in-vba-editor-when-open
2012年12月18日火曜日
2012年12月14日金曜日
linuxのzipコマンドで特定フォルダーとファイルを除外する
ラベル:
linux
特定フォルダーヤファイルを除外して圧縮するzipコマンドの例です。
dont_zip_me_dirフォルダーとSVN関係フォルダーと'*.tmp'を除外したtarget_dirまるごとを圧縮する例です。
解凍先のディレクトリを指定する場合は
zip -r what_ever_you_want.zip ./target_dir/ -x ./target_dir/dont_zip_me_dir\* '*.svn*' '*.tmp'
dont_zip_me_dirフォルダーとSVN関係フォルダーと'*.tmp'を除外したtarget_dirまるごとを圧縮する例です。
解凍先のディレクトリを指定する場合は
unzip what_ever_you_want.zip -d target_dir
2012年12月12日水曜日
ADODB.Commandのパラメータ埋め込みクエリーを出力
ラベル:
vba
ADODB.CommandのCommandTextではクエリーを確認できますが、parameterのところが"?"のまま、直接DBにクエリー投げたいので、いちいち値をセットするのはめんどくさいので、メソッドを作ってみました。
結果
' adArray
' adBigInt
' adBinary
' adBoolean
' adBSTR
' adChapter
' adChar
' adCurrency
' adDate
' adDBDate
' adDBTime
' adDBTimeStamp
' adDecimal
' adDouble
' adEmpty
' adError
' adFileTime
' adGUID
' adIDispatch
' adInteger
' adIUnknown
' adLongVarBinary
' adLongVarChar
' adLongVarWChar
' adNumeric
' adPropVariant
' adSingle
' adSmallInt
' adTinyInt
' adUnsignedBigInt
' adUnsignedInt
' adUnsignedSmallInt
' adUnsignedTinyInt
' adUserDefined
' adVarBinary
' adVarChar
' adVariant
' adVarNumeric
' adVarWChar
' adWChar
Public Function printSql(ByRef cmd As ADODB.Command) As String
Dim p As ADODB.Parameter
Dim vntP As Variant
Dim inti As Integer
Dim strR As String
inti = 1
ReDim vntP(cmd.Parameters.Count)
For Each p In cmd.Parameters
    Select Case p.Type
        'ここはニーズに応じてタイプを追加してください
        Case adInteger
            vntP(inti) = p.Value
        Case Else
            vntP(inti) = "'" & p.Value & "'"
    End Select
    inti = inti + 1
Next
strR = cmd.CommandText
For inti = 1 To UBound(vntP)
    strR = Replace(strR, "?", vntP(inti), 1, 1)
Next
printSql = strR
End Function
使い方Global cnn As New ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rs As ADODB.Recordset
    Dim param As ADODB.Parameter
    Set cmd = New ADODB.Command
   ' DB接続
    cnn.Open "Provider=SQLOLEDB;" & _
             "Data Source=" & srvName & ";" & _
             "Initial Catalog=" & databaseName & ";", user, pass
    cmd.ActiveConnection = cnn
    cmd.CommandTimeout = 0
    cmd.CommandType = adCmdText
    cmd.CommandText = "SELECT * FROM MyProj WHERE NAME = ? AND Create_at = ? AND hour = ?"
    ' パラメータを作成
    Set param = cmd.CreateParameter("PJNAME", adVarChar, adParamInput, 20)
    cmd.Parameters.Append param
    Set param = cmd.CreateParameter("CREATED", adDBTimeStamp, adParamInput)
    cmd.Parameters.Append param
    Set param = cmd.CreateParameter("HOUR", adInteger, adParamInput)
    cmd.Parameters.Append param
    ' パラメータに値をセット
    cmd.Parameters("PJNAME").Value = "計画A"
    cmd.Parameters("CREATED").Value = "2012-12-01"
    cmd.Parameters("HOUR").Value = 10
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenStatic
    Debug.Print(printSql(cmd)) '⇒ココ
    rs.Open cmd
結果
SELECT * FROM MyProj WHERE NAME = '計画A' AND Create_at = '2012/12/01' AND hour = 10
2012年12月11日火曜日
railsのhelper便利すぎw
ラベル:
rails
counter_partyのview
<%= f.collection_select(:名前, モジュール.find_all_by_列("値"), :列val用, :列disp用) %>
<%= f.collection_select(:CPCategory1, MiscCode.find_all_by_MiCodeKey("Field"), :MiCodeName, :MiCodeName) %>
↓<select id="counter_party_CPCategory2" name="counter_party[CPCategory2]"> <option value="顧客">顧客</option> <option value="外注先">外注先</option> <option value="その他">その他</option> </select>
2012年12月6日木曜日
既存データベース(SQL Server)をRailsに載せる
ラベル:
rails
ごめんなさい、ちょっと長すぎて、途中で何を言っているかわからなくなった気がする...でも一応個人の作業メモということで...お許し下さい..orz
環境はwindows
Ruby on Rails(RoR)は「railsinstaller.org」からdownload
VersionやGemの一覧(初期ではない、あとからGEMで追加したものもある!)
インストール後、デフォルト「c:\Sites」が作成される
※もしOS上既にRubyがインストールしていれば、複数バージョンを管理するために,pikをススメます
参照 http://holypp.hatenablog.com/entry/20110407/1302193459
さて、プロジェクトを建てましょう
今回は、既存のデータベースを使って、RoRに乗り換える。DBはSQL Server
Rails3からはプロジェクト単位でGEMを管理するから、プロジェクトフォルダ直下のGemfileに追加
そしたら、実行
次はDBに接続
config/database.ymlを編集
migrate←この段階では必要ないかもしれr内が、まぁ私はやった
ここまで来て、次はscaffold。だけど既存のDBのテーブルにはid列もないし、テーブル名はRailsの複数形式に従っていないが、ここ参照しました。本当にたすかったよ!
例えば今回scaffoldしたいテーブル名は「CounterParty」
irbコンソールが表示されたら、下記コードを全部(テーブル名は変更してね)コピペ
長すぎで自分も嫌になりました、よしっ!以上!ヽ(´ー`)ノ フッ
環境はwindows
Ruby on Rails(RoR)は「railsinstaller.org」からdownload
$ ruby --version
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]
$ rails --version
Rails 3.2.1
$ gem --version
1.8.16
$ gem list
*** LOCAL GEMS ***
actionmailer (3.2.1)
actionpack (3.2.1)
activemodel (3.2.9, 3.2.1)
activerecord (3.2.1)
activerecord-sqlserver-adapter (3.2.10, 3.2.1)
...
...
VersionやGemの一覧(初期ではない、あとからGEMで追加したものもある!)
インストール後、デフォルト「c:\Sites」が作成される
※もしOS上既にRubyがインストールしていれば、複数バージョンを管理するために,pikをススメます
参照 http://holypp.hatenablog.com/entry/20110407/1302193459
$ gem install pik
さて、プロジェクトを建てましょう
$ rails new railsinstaller_demo
$ cd railsinstaller_demo
今回は、既存のデータベースを使って、RoRに乗り換える。DBはSQL Server
Rails3からはプロジェクト単位でGEMを管理するから、プロジェクトフォルダ直下のGemfileに追加
gem 'activerecord-sqlserver-adapter'
gem 'tiny_tds'
そしたら、実行
$ rail bundle install
次はDBに接続
config/database.ymlを編集
development:
adapter: sqlserver
database: DB_NAME
host: 192.168.1.XXX
username: user
password: pwd
migrate←この段階では必要ないかもしれr内が、まぁ私はやった
$ rake db:migrate
ここまで来て、次はscaffold。だけど既存のDBのテーブルにはid列もないし、テーブル名はRailsの複数形式に従っていないが、ここ参照しました。本当にたすかったよ!
例えば今回scaffoldしたいテーブル名は「CounterParty」
$ rails console
irbコンソールが表示されたら、下記コードを全部(テーブル名は変更してね)コピペ
name = 'CounterParty'
si_table_name = 'CounterParty'
si_field_names = Array.new
si_cols = ActiveRecord::Base.connection.columns(si_table_name,"#{name} Columns")
si_cols.each do |c|
si_field_names << "#{c.name}:#{c.type}"
end
puts si_field_names.join(' ')
putsされたのは既存「CounterPartyのテーブル構造」、それをコピして、一旦railsコンソールをexit
$ rails g scaffold CounterParty コピーした内容をここにペスト
Another migration is already named create_counter_parties:...
あれ、作成できない、既にある?なるほど、これはさきmigrateが悪かったね、しなければ良かったかも
skip-migrateオプションを追加してもう一回
$ rails g scaffold CounterParty コピーした内容をここにペスト --skip-migrate
Overwriteと聞かれたら「Y」
...
..
そしてCOunterPartyのScaffoldが作成されました。
しかし、DBの構造はRailsに乗ってないので、いま表示したらエラーになりますので
app\models\counter_party.rbを編集して、テーブル名とid列を指定
class CounterParty < ActiveRecord::Base attr_accessible :CPName, :CPMemo, ... #Rails3からはwrite可能なフィルドを明示的に宣言しないといけないらしい? self.table_name = 'CounterParty' self.primary_key = :CPCPID endこれでOKのはず、さあ見てみよ
$ rails s
ブラウザーで「http://localhost:3000/counter_parties」をいれてご―
表示されたかな?
続き、WindowServer2008で動かす
>ruby --version
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
>rails --version
Rails 2.1.1
>gem --version
0.9.4
だいぶ古いですね
Rails3とRails2はいろいろ変わったので、ソースコードはそのまま移して使えないので、プロジェクトを新規作成する。
プロジェクト作成
database.ymlを編集
mongrelで動かすので、サービスとして登録します。
プロジェクトフォルダーの下で、「cmd」というフォルダーを作成して、下記のbatファイルを作成する
mongrel_service_regist.bat
CD ../ 
CALL mongrel_rails service::install -N "Mongrel 9500 MyProj" -p 9500 -e development -a 0.0.0.0 
SC CONFIG "Mongrel 9500 MyProj" START= AUTO
9500はポート番号、他の空いているポートもOK
mongrel_service_remove.bat
mongrel_rails service::remove  -N "Mongrel 9500 MyProj"
mongrel_service_restart.bat
NET STOP "Mongrel 9500 MyProj" 
NET START "Mongrel 9500 MyProj"
mongrel_service_start.bat
NET START "Mongrel 9500 MyProj"
mongrel_service_stop.bat
NET STOP "Mongrel 9500 MyProj"
これで、サービス登録[自動に設定]、再起動、開始、停止などがOne Clickでできるようになる
※但し、これは「管理者:コマンドプロンプト」で実行しなければなりません。
SQL Serverを使っている、データベースの日本語がviewで文字化けている時。
RoRのソースコードはすべてUTF8で記載、SQLServerのencodeはsjisの場合に発生?と思う
config/environment.rbの先頭で、下記を追加すれば解消された。
$KCODE = "u" require "win32ole" WIN32OLE.codepage=WIN32OLE::CP_UTF8最後、既存DBを使っているので、既存のprimary key列「CPCPID」(AUTO_INCREMENT利用しない)をrailsで管理する。 sql server では「IDENTITY」という属性らしい。「開始番号」の「IDENTITYシード」と「ID増分」がある 例えばIDENTITYシード=100、ID増分=10なら、「100,110,120」みたいに自動IDを生成してくれる。 Microsoft SQL Server Management Studio(長っ!)オブジェクトエクスプローラでテーブルの「デザイン」を開き、右クリックで「列のプロパティ」でIDENTITYを設定することが可能です。 もしなんか「一旦削除しないといけない」的なメッセージで怒られたら、 「ツール」>「オプション」>「デザイナ」>「デーブルデザイナおよび...」>「テーブルの再作成を必要とする変更.....」のチェックを外せば、変更できると思います。 それが終わったら、moduleでid列として、newとeditから削除すれば、普通にidとしてrailsが管理更新してくれます。
self.primary_key = :CPCPID
長すぎで自分も嫌になりました、よしっ!以上!ヽ(´ー`)ノ フッ
登録:
コメント (Atom)