うなまな Blog

VB覚え書き

AILight Banner
AILight Blog

プロフィール

うなまな Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

2008年9月23日 #

ブログ移行

http://www.higuchi.dev-asp.net/

に移行中です。

posted @ 13:17 | Comment (0)

2008年9月1日 #

岡山勉強会-第3回

毎月実施することは難しいですが、次の勉強会は11月15日に実施しようかと思っています。
意見交換などは、こちらでお願いします。
現在、内容は全く未定なので、要望セッションなどお気軽に・・・

posted @ 18:15 | Comment (0)

2008年8月30日 #

ギターヒーロー3

某部屋で燃えてしまいました。
とてもよくできていて、これは買いかなと・・・
次は負けないように練習しとかなきゃと。。。

posted @ 8:04 | Comment (0)

Live Mesh インストール

Live Meshをインストールしてみた。
なんかいいねぇ。
今後に期待です。

posted @ 7:56 | Comment (0)

2008年8月27日 #

TechEd2008 コミュニティ ライトニング トーク

コミュニティ ライトニングトークに登壇しました。
技術的な話ではなく、コミュニティに関しての話でしたが、
このような場で話せて大変よかったです。

ちょっと真面目に話しすぎたのが悔やまれます。
関係者・登壇者・参加された方々、ありがとうございました。

企画された原水さんのブログでも紹介されています。

posted @ 8:01 | Comment (0)

2008年7月22日 #

岡山勉強会-第2回の1セッションを担当してくれる方

急遽、3つ目のセッション(Silverlight系?)の都合が付かなくなりました。
どなたか、セッションを担当していただける方、いませんか?

不安な方は、私がサポートしますので、二人で行うのもありです。
「やってみようかな」という方、ご一報頂ければと思います。

posted @ 11:08 | Comment (2)

2008年7月9日 #

岡山勉強会-第2回開催決定!

やっと、岡山勉強会-第2回を開催することが決定しました。
詳細・参加登録などは、以下を参照してください。

http://oitec.vbstation.net/modules/eguide/event.php?eid=1

?

posted @ 8:20 | Comment (0)

2008年7月3日 #

岡山・IT・エンジニアズ・コミュニティ立ち上げ

Okayama IT Engineers Community
というコミュニティを立ち上げました。

http://oitec.vbstation.net/

興味にある方は、ぜひ、ユーザ登録してください。岡山県以外の方ももちろんOKです。

posted @ 7:17 | Comment (3)

2008年6月26日 #

岡山の開発者のコミュニティを立ち上げたい

岡山の開発者のコミュニティを立ち上げたいので、良いサイト名はないかなぁと、みなさんに聞いてみる。
一応CMS立ち上げテストは行っているので、サイト名が決まれば、サブドメインを取得して、立ち上げる予定。

サイトの目的は、
1.意見交換
2.イベント告知・管理
3.コミュニケーションの場
がメインの目的です。

Okayama Developer Community(Communications、Circle)-->略してODC
Okayama Information Technology Community(Communications、Circle)-->略してOITC
Okayama Developer Exchange-->略してODE

などなど・・・
いい名前はないですかね~

posted @ 9:02 | Comment (2)

2008年6月23日 #

[覚書]PDFCreatorのファイル名

仮想プリンタとして利用できる、PDFCreatorを利用して、VBよりPDF出力しようとしているけど、
AutosaveFilenameオプションの設定は無効になるようですね。

出力完了後に、cOutputFilenameプロパティの値を利用すれば問題ないですけど、次バージョンでは
このあたりが改善されていればいいかなぁ。

posted @ 15:40 | Comment (0)

2008年6月19日 #

第2回勉強会がなかなか・・・

場所の確保がこんなに難しいとは・・・
場所さえ決まれば、即決で開催決定なんですけどね。

セッション内容はどうにかなると思うし。

なお、勉強会開催に向けて、協力していただける方も募集中!

posted @ 22:47 | Comment (5)

2008年4月8日 #

今年もいただけました

今年も、
Microsoft MVP for Visual Developer - Visual Basic
を頂けました。受賞できたのが不思議。

関係各位の方々、今年もよろしくです。

posted @ 9:10 | Comment (2)

2008年3月25日 #

Visual Basic Power Packs 3.0

リリースされていましたね。
一番実装してほしかった、DataRepeater Control が実装されてました。

Visual Basic Power Packs 3.0
http://www.microsoft.com/downloads/details.aspx?FamilyId=371368A8-7FDC-441F-8E7D-FE78D96D4063&displaylang=en

細かく機能を確認していませんが、VB6時代のDataRepeaterと、ほぼ同じ
ことができそうです。本家サイトでTips公開しなければ・・・

posted @ 9:12 | Comment (0)

2008年3月23日 #

岡山勉強会、無事終了

勉強会が無事終了しました。
講師、実行の関係者の方々、ありがとうございました。
また、休日に参加して頂いた方、ありがとうございました。

参加された方々と名刺交換などができなかったのが残念。
参加された方、よろしきれば、連絡を・・・

次回の勉強会のこともありますので・・・
よろしくです。

posted @ 11:32 | Comment (5)

2008年2月28日 #

岡山で勉強会!

このたび、岡山にてコミュニティ支援団体であるNPO法人アイネタ ジャパンと
マイクロソフトが共催で勉強会を開催します。

・日時 2008 年 3 月 22 日 (土) 13:00~18:30 (受付開始 12:30)
・会場 第一セントラルビル 3F 中ホール (岡山県岡山市) [詳細MAP]

岡山でのイベントは初めてなのですが、今後、定期的に行えるように
してく予定です。

詳細は、http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032370662

posted @ 8:53 | Comment (0)

2007年5月20日 #

広島CLTイベント終了

5月19日に広島でCLTイベントがあり、「Vistaの音声合成・認識」とい内容で、3セッションのうちのひとつを担当しました。

なんとか無事にこなせたという感じです。時間は、10分オーバー。。。
デモも削ってしまったので、blogなどで、別途公開していく予定です。

関係者の方々、ご苦労さまでした。

posted @ 10:53 | Comment (2)

2007年3月5日 #

Vistaの音声合成は英語のみ?

Vistaの音声合成は標準では、Microsoft Annaなので日本語を認識しない・・・
なので、Office2003で提供されているKenjiを利用してみるとうまく日本語を話す。
これでマイクロソフトナレータも利用できますね。

ナレータを利用したいんでなくて、System.Speech名前空間を利用したプログラムで
遊びたかっただけなのだが、SpeakProgressイベントなどが日本語だとダメみたい。

SAPI5.3の情報も少ないし、Microsoft Anna以外の音声はいものか・・・("Takashi","Keiko"?)

posted @ 15:14 | Comment (3)

2007年3月1日 #

Visual Studio Code Name "Orcas" - March 2007 CTPが・・・

http://www.microsoft.com/downloads/details.aspx?FamilyID=B533619A-0008-4DD6-9ED1-47D482683C78&displaylang=en

http://www.microsoft.com/downloads/details.aspx?FamilyID=281fcb3d-5e79-4126-b4c0-8db6332de26e&DisplayLang=en

は別モノなのか?

posted @ 14:50 | Comment (0)

2007年2月13日 #

TableAdapterにトランザクションを実装

TableAdapterでTransactionを行うには、TransactionScopeを利用するのが一番簡単だと思いますけど、みなさんはTableAdapterでTransactionを行うのをどのようにされていますか?
複数のTableAdapterにトランザクションを実装したりするのも・・・
以下のようなクラスを作ってテスト中・・・

Imports System.Data.SqlClient
Imports System.Reflection
''' <summary>
''' TableAdapterにトランザクション機能を実装するクラス
''' </summary>
''' <remarks>
''' 利用方法の例
'''    Dim tat As New TableAdapterTransactor
'''    Dim taData1 As New Data1TableAdapter
'''    Dim taData2 As New Data2TableAdapter
'''    
'''    tat.AddTableAdapter(taData1)
'''    tat.AddTableAdapter(taData2)
'''    tat.BeginTransaction()
'''    Try
'''        taData1.Insert......
'''        taData2.Insert......
'''        tat.Commit()
'''    Catch ex As Exception
'''        tat.Rollback()
'''    End Try
''' </remarks>
Public Class TableAdapterTransactor
    Private _conn As SqlConnection = Nothing
    Private _trans As SqlTransaction = Nothing
    Private _tableAdapters As New List(Of Object)
#Region "Pプロシージャ - GetConnection                     [TableAdapterのConnectionを取得する]"
    ''' <summary>
    ''' TableAdapterのConnectionを取得する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <returns>取得したConnection</returns>
    ''' <remarks></remarks>
    Private Function GetConnection(ByVal tableAdapter As ObjectAs SqlConnection
        Dim type As Type = tableAdapter.GetType()
        Dim connectionProperty As PropertyInfo = _
            type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim connection As SqlConnection = _
            CType(connectionProperty.GetValue(tableAdapter, Nothing), SqlConnection)
        Return connection
    End Function
#End Region
#Region "Pプロシージャ - SetConnection                     [TableAdapterのConnectionを設定する]"
    ''' <summary>
    ''' TableAdapterのConnectionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="connection">Connection</param>
    ''' <remarks></remarks>
    Private Sub SetConnection(ByVal tableAdapter As ObjectByVal connection As SqlConnection)
        Dim type As Type = tableAdapter.GetType()
        Dim connectionProperty As PropertyInfo = _
            type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
        connectionProperty.SetValue(tableAdapter, connection, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - GetAdapter                        [TableAdapterのDataAdapterを取得する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterを取得する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <returns>取得したDataAdapter</returns>
    ''' <remarks></remarks>
    Private Function GetAdapter(ByVal tableAdapter As ObjectAs SqlDataAdapter
        Dim type As Type = tableAdapter.GetType()
        Dim adapterProperty As PropertyInfo = _
            type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim adapter As SqlDataAdapter = _
            CType(adapterProperty.GetValue(tableAdapter, Nothing), SqlDataAdapter)
        Return adapter
    End Function
#End Region
#Region "Pプロシージャ - SetAdapter                        [TableAdapterのDataAdapterを設定する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="adapter">DataAdapter</param>
    ''' <remarks></remarks>
    Private Sub SetAdapter(ByVal tableAdapter As ObjectByVal adapter As SqlDataAdapter)
        Dim type As Type = tableAdapter.GetType()
        Dim adapterProperty As PropertyInfo = _
            type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        adapterProperty.SetValue(tableAdapter, adapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - InitAdapter                       [TableAdapterのInitAdapterメソッドを呼び出す]"
    ''' <summary>
    ''' TableAdapterのInitAdapterメソッドを呼び出す
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks>利用しない</remarks>
    Private Sub InitAdapter(ByVal tableAdapter As Object)
        Dim type As Type = tableAdapter.GetType()
        Dim mi As MethodInfo = _
            type.GetMethod("InitAdapter", BindingFlags.NonPublic Or BindingFlags.Instance)
        mi.Invoke(tableAdapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - InitCommandCollection             [TableAdapterのInitCommandCollectionメソッドを呼び出す]"
    ''' <summary>
    ''' TableAdapterのInitCommandCollectionメソッドを呼び出す
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks>利用しない</remarks>
    Private Sub InitCommandCollection(ByVal tableAdapter As Object)
        Dim type As Type = tableAdapter.GetType()
        Dim mi As MethodInfo = _
            type.GetMethod("InitCommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
        mi.Invoke(tableAdapter, Nothing)
    End Sub
#End Region
#Region "Pプロシージャ - SetTransactionCommands            [TableAdapterのCommandCollectionのTransactionを設定する]"
    ''' <summary>
    ''' TableAdapterのCommandCollectionのTransactionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="transaction">Transaction</param>
    ''' <remarks></remarks>
    Private Sub SetTransactionCommands(ByVal tableAdapter As ObjectByVal transaction As SqlTransaction)
        Dim type As Type = tableAdapter.GetType()
        Dim commandsProperty As PropertyInfo = _
            type.GetProperty("CommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
        Dim commands As SqlCommand() = _
            CType(commandsProperty.GetValue(tableAdapter, Nothing), SqlCommand())
        For Each command As SqlCommand In commands
            command.Transaction = transaction
        Next
        Me.SetConnection(tableAdapter, transaction.Connection)
    End Sub
#End Region
#Region "Pプロシージャ - SetTransactionAdapter             [TableAdapterのDataAdapterのTransactionを設定する]"
    ''' <summary>
    ''' TableAdapterのDataAdapterのTransactionを設定する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <param name="transaction">Transaction</param>
    ''' <remarks></remarks>
    Private Sub SetTransactionAdapter(ByVal tableAdapter As ObjectByVal transaction As SqlTransaction)
        Dim adp As SqlDataAdapter = Me.GetAdapter(tableAdapter)
        If adp.InsertCommand IsNot Nothing Then
            adp.InsertCommand.Transaction = transaction
        End If
        If adp.DeleteCommand IsNot Nothing Then
            adp.DeleteCommand.Transaction = transaction
        End If
        If adp.UpdateCommand IsNot Nothing Then
            adp.UpdateCommand.Transaction = transaction
        End If
        Me.SetAdapter(tableAdapter, adp)
        'Me.InitCommandCollection(tableAdapter)
    End Sub
#End Region
#Region "メソッド - AddTableAdapter                        [TableAdapterを追加する]"
    ''' <summary>
    ''' TableAdapterを追加する
    ''' </summary>
    ''' <param name="tableAdapter">TableAdapter</param>
    ''' <remarks></remarks>
    Public Sub AddTableAdapter(ByVal tableAdapter As Object)
        Me._tableAdapters.Add(tableAdapter)
    End Sub
#End Region
#Region "メソッド - BeginTransaction                       [トランザクションを開始する]"
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <remarks>開始する前に、AddTableAdapterメソッドで対象となるTableAdapterを追加すること</remarks>
    Public Sub BeginTransaction()
        Dim counter As Integer = 0
        For Each adapter As Object In Me._tableAdapters
            counter += 1
            If counter = 1 Then
                Me._conn = Me.GetConnection(adapter)
                If Me._conn.State <> ConnectionState.Open Then
                    Me._conn.Open()
                End If
                Me._trans = Me._conn.BeginTransaction()
            End If
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <param name="conn">コネクション</param>
    ''' <remarks></remarks>
    Public Sub BeginTransaction(ByVal conn As SqlConnection)
        Me._conn = conn
        If Me._conn.State <> ConnectionState.Open Then
            Me._conn.Open()
        End If
        Me._trans = Me._conn.BeginTransaction()
        For Each adapter As Object In Me._tableAdapters
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
    ''' <summary>
    ''' トランザクションを開始する
    ''' </summary>
    ''' <param name="trans">トランザクション</param>
    ''' <remarks></remarks>
    Public Sub BeginTransaction(ByVal trans As SqlTransaction)
        Me._conn = trans.Connection
        Me._trans = trans
        For Each adapter As Object In Me._tableAdapters
            Me.SetConnection(adapter, Me._conn)
            Me.SetTransactionAdapter(adapter, Me._trans)
            Me.SetTransactionCommands(adapter, Me._trans)
        Next
    End Sub
#End Region
#Region "メソッド - Commit                                 [トランザクションをコミットする]"
    ''' <summary>
    ''' トランザクションをコミットする
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Commit()
        Try
            Me._trans.Commit()
        Catch ex As Exception
            Me._trans.Rollback()
            Throw ex
        Finally
            If (Me._conn.State = ConnectionState.Open) Then
                Me._conn.Close()
            End If
        End Try
    End Sub
#End Region
#Region "メソッド - Rollback                               [トランザクションをロールバックする]"
    ''' <summary>
    ''' トランザクションをロールバックする
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Rollback()
        Me._trans.Rollback()
        If (Me._conn.State = ConnectionState.Open) Then
            Me._conn.Close()
        End If
    End Sub
#End Region
End Class

posted @ 9:23 | Comment (2)

2007年1月19日 #

Visual Basic 2005 Power Packs

Visual Basic 2005 Power Packs便利なものがあったんですね。
Microsoft Printer Compatibility Library 1.0
・Microsoft Interop Forms Toolkit 1.0
・Microsoft PrintForm Component 1.0
 
VB6時代の資産にPrinterオブジェクトでゴリゴリ書いて印刷していたものを、.NETへ移行するのは大変だけど、 Microsoft Printer Compatibility Library 1.0 を入れれば、幸せになれそうですね。

今後も便利なツールが提供されそうなので、要チェックですね。

posted @ 17:16 | Comment (0)