2015年12月30日水曜日

MS ACCESSのバグ?報告

MS ACCESSのクエリー(QUERY)で全角数字で始まるフィールド(FIELD)名を持つテーブル(TABLE)はエラーになる

テーブルに下図のような全角数字で始まるフィールド名を設定すると



テーブルは正常にデータビューが起動するが、

下記のような単純データ表示クエリーでデータシートビューを表示しようとすると
(データシートビューだけでなく、とにかく、クエリーを実行しようとすると)


フィールド名がクエリ式と解釈され、「演算子がありません」というエラーになる!
テーブルのデータ型には関係ありません
とにかく、フィールド名の最初の1文字目が全角数字だとこうなります

これは下図のような半角数字で始まるフィールド名では起こらない



上図のテーブル定義で下図のようなクエリを作り、データシートビューをすると


下図のようにデータシートビューは正常に表示される


なんじゃこりゃ
これでかなり悩まされた!
マイクロソフトさん こういうのはやめてーーー
時間返せー

マイクロソフト,アクセス,ACCESS,MS ACCESS,クエリー ,QUERY,テーブル,TABLE

2015年6月27日土曜日

Excel VBA 選択した範囲をいろいろな表現で求める


Excel 選択した範囲をいろいろな表現で求める方法

[program]
Dim ColNo As Long
Dim RowNo As Long
ColNo=Range("G2").Coliumn
RowNo=Range("G2").Row

[Result]
ColNoに数値の2が入る
RowNoに数値の2が入る

[program]
Dim strRange As String
strRange=Range(cells(1,1),Cells(2,2)).Address

[Result]
strRangeに文字列"$A$1:$B$2"が入る


Addressの解説
以下Microsoftヘルプのコピー

Excel 開発者用リファレンス
Range.Address プロパティ
コード記述時の言語で参照範囲を表す文字列型 (String) の値を返します。
構文

式.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

式   Range オブジェクトを表す変数です。

パラメータ

名前 必須/オプション データ型 説明
RowAbsolute オプション バリアント型 (Variant) 行部分の参照を絶対参照として返すには、True を指定します。既定値は True です。
ColumnAbsolute オプション バリアント型 (Variant) 列部分の参照を絶対参照として返すには、True を指定します。既定値は True です。
ReferenceStyle オプション XlReferenceStyle 参照形式を指定します。既定値は xlA1 です。
External オプション バリアント型 (Variant) 外部参照を返すには、True を指定します。ローカル参照を返すには、False を指定します。既定値は False です。
RelativeTo オプション バリアント型 (Variant) 引数 RowAbsolute と引数 ColumnAbsolute の両方に False が指定されていて、引数 ReferenceStyle に xlR1C1 が指定されると、相対参照の開始点を含める必要があります。この引数は、参照の開始点を定義する Range オブジェクトを使用します。

備考
参照に複数のセルが含まれている場合は、引数 RowAbsolute と引数 ColumnAbsolute はすべての行と列に適用されます。



使用例
次の使用例は、シート 1 の同じセル アドレスを 4 つの異なる方法で表します。コード中のコメントは、メッセージで表示されるアドレスを示しています。

Visual Basic for Applications
Set mc = Worksheets("Sheet1").Cells(1, 1)
MsgBox mc.Address()                              ' $A$1
MsgBox mc.Address(RowAbsolute:=False)            ' $A1
MsgBox mc.Address(ReferenceStyle:=xlR1C1)        ' R1C1
MsgBox mc.Address(ReferenceStyle:=xlR1C1, _
    RowAbsolute:=False,     _
    ColumnAbsolute:=False,  _
    RelativeTo:=Worksheets(1).Cells(3, 3))        ' R[-2]C[-2]


EXCEL VBA セル参照・選択・操作・書式設定方法

参照元:http://home.att.ne.jp/zeta/gen/excel/c04p50.htm

セルを参照する
■Rangeプロパティを使用してセルを参照する
■Cellsプロパティを使用してセルを参照する
■RangeプロパティとCellsプロパティを組み合わせて使用する
■その他のセル、セル範囲の指定方法
・[]を使ってセル範囲を参照する
・インデックス番号を使用してセルを参照する。■セルのアドレスを指定せずに、セルを参照する方法
・Offsetプロパティ
・CurrentRegionプロパティ
・Endプロパティ
・SpecialCellsメソッド
・Selectionプロパティ、ActiveCellプロパティ
・Namesプロパティ

セルを選択する
■Selectメソッド、Activateメソッド
■Gotoメソッド
■Resizeプロパティ
■Unionプロパティ

セルを操作する
■セルの値を取得・設定する
・Valueプロパティ、Formulaプロパティ
■セルの値をオートフィルする
・AutoFillメソッド
■セルの値をクリアする
・Clearメソッド、ClearContentsメソッド、ClearFormatメソッド、ClearComentsメソッド
■セルの値をコピーする
・Copyメソッド、Pasteメソッド、PasteSpecialメソッド
■セルを挿入・削除する
・Insertメソッド、Deleteメソッド
■セルを結合する
・Mergeメソッド
■セルにふりがなを設定する
・GetPhoneticメソッド、SetPhoneticメソッド
■セルにハイパーリンクを設定する
・Hyperlinks.Addメソッド、Followメソッド、Deleteメソッド

セルの書式を設定する
■セルのフォントを設定する
・Nameプロパティ
・Sizeプロパティ
・Boldプロパティ、Italicプロパティ
・Underlineプロパティ、Strikethroughプロパティ
・ColorIndexプロパティ











EXCEL VBA メニューバー

EXCEL2007以降のメニューバーの話題

参照: 新しいメニューを追加する


参考: エクセル2013基本講座:自作のマクロをリボンに登録する


参考:Excelのメニューに自作したマクロを追加するには @IT


Sub Sample3()
  With Application.CommandBars("Cell").Controls.Add()
    .Caption = "コマンド1"
    .OnAction = "'myMacro3 ""印刷""'"
  End With
  With Application.CommandBars("Cell").Controls.Add()
    .Caption = "コマンド2"
    .OnAction = "'myMacro3 ""保存""'"
  End With
End Sub   

Sub myMacro3(buf As String)
  MsgBox buf & "を実行します"
End Sub   

2014年10月21日火曜日

VMPlayer6 windows8.1 この仮想マシンを構成済み設定でパワーオンするのに十分な物理メモリがありません。


Windows8.1のアップデータでオプションアップデート KB2995388 を適用すると
 VMPlayer6 がエラー 「この仮想マシンを構成済み設定でパワーオンするのに十分な物理メモリがありません。 」と表示されて起動できない場合の対処方法



VMwareCommunityの中の以下のページが参考になります。
https://communities.vmware.com/message/2437583#2437583

対処方法
C:\ProgramData\VMware\VMware Player
にある
config.ini に
vmmon.disableHostParameters = "TRUE"
を追加する


VMware Workstation10でも同じ

以上

キーワード
VMware Player6, Windows8.1, KB2995388
この仮想マシンを構成済み設定でパワーオンするのに十分な物理メモリがありません

2013/11/03
この問題はVMPlayer6.0.4で解消されました。

2014年9月23日火曜日

EXCEL VBA 特定の値と同じ値のセルを検索する

EXCEL VBA 特定の値と同じ値のセルを見つけ出すには以下のCells.Findが便利です。


  findvalue="AAA"
    Cells.Find(What:=findvalue, After:=ActiveCell, LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
    GetRow = ActiveCell.Row

詳細はヘルプを見てください。




2014年9月13日土曜日

Excelで、sum関数などの内部を動的に引き渡すにはINDEX関数を使えばよい

以下のブログからコピーしました。著作権侵害かもしれませんが、ごめんなさい。

Excelで、sum関数などの内部を動的に引き渡す方法
http://nakamura.goga.co.jp/article/143143138.html


SUM関数などの内部の引数を動的に引き渡すには
INDEX関数を使う
=sum(index(B:B,A1):index(B:B,A2))

と記入すればOK。つまり、index関数は当該位置の値ではなく、当該位置そのものを返してくれている、ということになります。

詳細はExcelのヘルプにあります。index関数→セル範囲形式→解説の中に、次の記述があります。

INDEX 関数の計算結果はセル参照となり、他の数式はこれを通常のセル参照と同様に扱います。INDEX 関数の計算結果は、セル参照または値として使用されます。たとえば、CELL("width",INDEX(A1:B2,1,2)) という数式は、CELL("width",B1) と同じ結果になります。これは CELL 関数が、INDEX 関数の計算結果を通常のセル参照と同じであると解釈するためです。一方、2*INDEX(A1:B2,1,2) のような数式では、INDEX 関数の計算結果はセル B1 に入力されている数値に変換されます。

2014年9月8日月曜日

Microsoft SQL Server の sa のパスワードを忘れたらこうすると回復できる!

2014/9/07
Microsoft SQL Server の sa のパスワードを忘れてこうしたら回復した!

ある日突然SQL Server 2008 Expressにsaでログインできなくなった
VMWare で Windows Vista Ultimet 32Bit上で動かしていた

そうなった原因は不明、きっと何かをしたのだが、記憶にない
レポーティングツールを追加インストールしたのでその時何かしたのかもしれない。
VMware上で動かしているので、電源の落とし方がまずかったのかなー。


以下のページが一番参考になる
http://technet.microsoft.com/ja-jp/magazine/jj853293.aspx

手順
1.構成マネージャーですべてのサービスを停止する
2.コマンドプロンプトを管理者モードで立ち上げる
3.シングルユーザモードでSQLサーバを立ち上げる
cd \program files\microsoft SQL server\MSSQL10.SQLEXPRESS\MSSQL\Binn
sqlservr -m -s sqlexpress
  パラメータ説明 -m:シングルモードで立ち上げ、-s サーバ名:必ず小文字の-s
  このコマンドプロンプトは立ち上げたままにする

5.もうひとつ、コマンドプロンプトを管理者モードで立ち上げる
6.SQLコマンドでSQLサーバに接続
  この時、通常サーバ名は<コンピュータ名\SQLEXPRESS>とするのだが、
  <.\sqlserver>としないとつながらなかった。これが不思議???
  -Sは大文字のこと これをよく間違える!
sqlcmd -S .\sqlexpress
  1>と出れば成功!

7.sa以外の管理者モードのユーザを作成する
1>CREATE LOGIN SUPERUSER WITH PASSWORD='password'
2>GO
8.作ったユーザに管理者モードを付与する
1>SP_ADDSRVROLEROLLMEMBER SUPERUSER,'SYSADMIN'
10.2>GO
11.1>QUIT
これでいったん終了
sqlcmdとsqlservrを終了する
12.sqlservrを終わらせるには
  CTRL+break

13.再度、sqlservrを通常モードで立ち上げる
14.sqlservr -s sqlexpress
別のコマンドプロンプトで
15.sqlcmd -U superuser -P password -S .\sqlexpress
とログインして、saのパスワードの再設定をする
1>ALTER LOGIN sa WITH PASSWORD = 'password'
2>GO
1>QUIT
これで完成!
saでパスワードpasswordで入れるようになる

以上


SQL Serverの-mで立ち上げた時のログはGoogleDriveに保存した。