C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.5404 の関連記事表示

<< 0 >>
■5420  Re[2]: 他のフォームからの呼び出し
□投稿者/ kazu -(2006/08/10(Thu) 20:32:37)

    分類:[C#] 

    魔界の仮面弁士さん>

    ありがとうございます。問題が解決しました。ほんと助かりました。

    はいこーんさん>

    ご意見ありがとうございます。勉強になります!

記事No.5404 のレス / END /過去ログ5より / 関連記事表示
削除チェック/

■5410  Re[2]: 他のフォームからの呼び出し
□投稿者/ はいこーん -(2006/08/10(Thu) 17:08:26)

    分類:[C#] 

    No5405に返信(なおこ(・∀・)さんの記事)
    > ShowDialog でしたら、
    別にShowメソッドでも取れますが。

    > Me.Owner プロパティで 自分を起動した画面(フォームA)の参照をとる事は可能ですが...
    可能ですが、お勧めできない、と。
記事No.5404 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5409  Re[2]: 他のフォームからの呼び出し
□投稿者/ kazu -(2006/08/10(Thu) 16:02:40)

    分類:[C#] 

    返信ありがとうございます。

    今はShowDialogです。Me.Ownerプロパティですが、調べてもよくわかりません。
    例としてはどのような使い方(形)がありますか??

    返信お待ちしております。
記事No.5404 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5407  Re[1]: 他のフォームからの呼び出し
□投稿者/ 魔界の仮面弁士 -(2006/08/10(Thu) 15:34:32)

    分類:[C#] 

    > 1.フォームA(ラベルとボタンを設置)とフォームB(ボタンを設置)を用意する。
    > 2.フォームAに設置したボタンを押すとフォームBが呼び出される。
    > 3.フォームBのボタンを押すと、フォームAの関数を呼び出す。

    ★案 1 ★ イベントを公開する。

    //-------- Form1 (呼び出す側) --------
    public partial class Form1 : Form
    {
    public Form1() { InitializeComponent(); }

    private void button1_Click(object sender, EventArgs e)
    {
    using (Form2 dialog = new Form2())
    {
    dialog.ButtonClicked += new EventHandler(dialog_ButtonClicked);
    dialog.ShowDialog();
    }
    }

    void dialog_ButtonClicked(object sender, EventArgs e)
    {
    MessageBox.Show("Form1 内のメソッド");
    }
    }


    //-------- Form2 (呼び出される側) --------
    public partial class Form2 : Form
    {
    public Form2() { InitializeComponent(); }

    public event EventHandler ButtonClicked;
    private void button1_Click(object sender, EventArgs e)
    {
    if (ButtonClicked != null)
    ButtonClicked(sender, e);
    }
    }



    ★案 2 ★ デリゲートを渡す。

    //-------- Form1 (呼び出す側) --------
    public partial class Form1 : Form
    {
    public Form1() { InitializeComponent(); }
    private void OnButtonClicked()
    {
    MessageBox.Show("Form1 内のメソッド");
    }
    private void button1_Click(object sender, EventArgs e)
    {
    using (Form2 dialog = new Form2())
    {
    dialog.ShowDialog(OnButtonClicked);
    }
    }
    }


    //-------- Form2 (呼び出される側) --------
    public partial class Form2 : Form
    {
    public Form2() { InitializeComponent(); }

    public delegate void ButtonClicked();
    private ButtonClicked OnButtonClicked;
    public DialogResult ShowDialog(ButtonClicked function)
    {
    OnButtonClicked = function;
    return base.ShowDialog();
    }
    private void button1_Click(object sender, EventArgs e)
    {
    if (OnButtonClicked != null)
    OnButtonClicked();
    }
    }

記事No.5404 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5405  Re[1]: 他のフォームからの呼び出し
□投稿者/ なおこ(・∀・) -(2006/08/10(Thu) 15:09:47)
>

    分類:[C#] 

    お世話になります。

    No5404に返信(kazuさんの記事)
    > 2.フォームAに設置したボタンを押すとフォームBが呼び出される。
    ここの呼び出しは ShowDialog でしょうか。

    > 3.フォームBのボタンを押すと、フォームAの関数を呼び出す。
    ShowDialog でしたら、
    Me.Owner プロパティで 自分を起動した画面(フォームA)の参照をとる事は可能ですが...
記事No.5404 のレス /0過去ログ5より / 関連記事表示
削除チェック/

■5404  他のフォームからの呼び出し
□投稿者/ kazu -(2006/08/10(Thu) 14:38:56)

    分類:[C#] 


    分類:[C#] 

    どうも、VBのプログラムをC#に書き換えているものです。

    今回質問させていただきたい内容は"フォームAで作った関数をフォームBで呼び出す方法"です。

    1.フォームA(ラベルとボタンを設置)とフォームB(ボタンを設置)を用意する。
    2.フォームAに設置したボタンを押すとフォームBが呼び出される。
    3.フォームBのボタンを押すと、フォームAの関数を呼び出す。

    あまり具体的ではないのですが、回答よろしくお願いします。
親記事 /0過去ログ5より / 関連記事表示
削除チェック/

■5404  複数のデータベース間でのSQLの実行
□投稿者/ kawa -(2007/07/12(Thu) 15:03:27)

    分類:[VB.NET] 

    2007/07/12(Thu) 16:47:11 編集(投稿者)
    2007/07/12(Thu) 16:47:01 編集(投稿者)
    2007/07/12(Thu) 16:46:56 編集(投稿者)

    分類:[VB.NET(全般)] 

    vb2003
    WindowsXP

    初めて投稿させていただきます。
    よろしくお願いします。

    現在、以下のような流れをめざして、プログラムを組んでいます。
    @VB.NETでmdb(Access)に接続
    ASQL文を ExecuteNonQuery でSQLServer2000のテーブルからAccessのテーブルにインポート

    SQL文は以下のようにしています。
    SELECT * INTO テーブル名
    FROM [ODBC;DRIVER=SQL Server;SERVER=サーバー名;
    DATABASE=データベース名;
    UID=ユーザーID;PWD=パスワード;].テーブル名

    しかし、実行すると以下のようなエラーメッセージが出てきます。
    「"オブジェクト名 'ODBC;DRIVER=SQL Server;SERVER=サーバー名;
    DATABASE=データベース名;
    UID=ユーザーID;PWD=パスワード;.テーブル名' は無効です。"」

    Accessでクエリとして同じSQLを実行し試してみたところ、Access上でテーブルにテーブルが作成されました。
    これは、現在考えている流れで、SELECT テーブル名 INTO〜のSQL文を使うことはできないということでしょうか?
    もしその場合には、SQLServerからとって来たデータを、Accessのテーブルに1行ずつ追加していくという方法しかないのでしょうか?

    どなたかご教示のほう、よろしくお願いします。
親記事 /過去ログ15より / 関連記事表示
削除チェック/

■5407  Re[1]: 複数のデータベース間でのSQLの実行
□投稿者/ 片桐 -(2007/07/12(Thu) 17:14:45)
    とりあえずの案ですがフローで。

    1.SQL-Serverで接続して、データ取ってきてDATASET(A)を作る
    2.ACCESSで接続して、テーブル作成、そのテーブルからDATASET(B)を作る
    3.DATASET(A)からDATASET(B)へBULKCOPYメソッドを発行する

    という方法で、実現させた事があります。

    SQL-ServerのリンクテーブルSQLの書き方もあったとは思うのですが、
    サンプルはすぐに出ないので……他の方から出てくるかも、ですが(^^;
    さがしておきますです。
記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5410  Re[1]: 複数のデータベース間でのSQLの実行
□投稿者/ 魔界の仮面弁士 -(2007/07/12(Thu) 18:28:06)
    2007/07/12(Thu) 19:29:32 編集(投稿者)

    No5404 (kawa さん) に返信
    mdb に、SQL Server 2000 のデータを取り込むのですよね。DTS は使えませんか?
    http://www.microsoft.com/japan/msdn/sqlserver/columns/


    > SELECT テーブル名 INTO〜のSQL文を使うことはできないということでしょうか?
    使えると思いますよ。
    当方で追試してみましたが、.NET 1.1/2.0 のいずれでも、問題なく生成されまたし。

    何か、権限周りの問題だったりはしませんか?


    '=======================
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic

    Module Test
    Sub Main()
    Const serverName As String = 〜〜
    Const dbName As String = 〜〜
    Const mdbTable As String = 〜〜
    Const sqlTable As String = 〜〜
    Const userID As String = 〜〜
    Const password As String = 〜〜

    Dim sqlPattern As String = "SELECT * INTO [{1}] FROM " & _
    "[ODBC;DRIVER={{SQL SERVER}};SERVER={2};DATABASE={3};UID={4};PWD={5}].[{0}]"

    Dim sql As String = String.Format(sqlPattern, sqlTable, mdbTable, _
    serverName, dbName, userID, password)

    #If VBC_VER < 8.0 Then
    Dim cn As OleDbConnection = Nothing
    Try
    'cn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test.mdb;")
    cn = New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\test.mdb;")
    cn.Open()
    Dim cmd As OleDbCommand = Nothing
    Try
    cmd = New OleDbCommand(sql, cn)
    cmd.ExecuteNonQuery()
    Finally
    If Not cmd Is Nothing Then cmd.Dispose()
    End Try
    Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Exclamation)
    Finally
    If Not cn Is Nothing Then
    cn.Close()
    cn.Dispose()
    End If
    End Try
    #Else
    'Using cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test.mdb;")
    Using cn As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\test.mdb;")
    cn.Open()
    Using cmd As New OleDbCommand(sql, cn)
    Try
    cmd.ExecuteNonQuery()
    Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Exclamation)
    End Try
    End Using
    cn.Close()
    End Using
    #End If
    End Sub
    End Module</pre></pre>
記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5408  Re[2]: 複数のデータベース間でのSQLの実行
□投稿者/ Mr.T -(2007/07/12(Thu) 17:57:06)
    Mr.Tです、こんにちは。

    ええっと、逆パターンでもOKなら一番簡単そう。
    Accessファイルにリンクテーブルをあらかじめ作成しておけば、
    アクセスするターゲットが一つになって楽そうな感じがします。



記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5413  Re[2]: 複数のデータベース間でのSQLの実行
□投稿者/ Mr.T -(2007/07/12(Thu) 19:21:53)
    2007/07/12(Thu) 19:22:33 編集(投稿者)

    Mr.Tです、こんにちは。

    No5410 (魔界の仮面弁士 さん) に返信
    > ■No5404 (kawa さん) に返信
    > mdbデータを、SQL Server 2000 に取り込むのですよね。DTS は使えませんか?

    あれ、逆じゃないでしょうか?
    SQLServerのテーブルデータをAccessへ取り込むのでは?

    >@VB.NETでmdb(Access)に接続
    >ASQL文を ExecuteNonQuery でSQLServer2000のテーブルからAccessのテーブルにインポート
記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5414  Re[3]: 複数のデータベース間でのSQLの実行
□投稿者/ 魔界の仮面弁士 -(2007/07/12(Thu) 19:35:09)
    No5413 (Mr.T さん) に返信
    > あれ、逆じゃないでしょうか?

    失礼しました & ありがとうございます。m(_ _)m

    最初の一文を逆に書いてしまったことに気が付いて直したものの、
    一歩遅かったようで。

    # 逆パターンなら、mdb からの SQL への ODBC 接続ではなく、
    # SQL Server から mdb への OLEDB 接続で SELECT INTO の方向で。
記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5481  Re[4]: 複数のデータベース間でのSQLの実行
□投稿者/ kawa -(2007/07/14(Sat) 21:55:26)
    片桐様、Mr.T様、魔界の仮面弁士様 ありがとうございます。

    現在、環境が変わってしまったため、教えていただいた方法を試すことが出来ない状態になってしまいました。
    ただ、BULKCOPYやリンクテーブルを用いた方法など、さまざまな方法を知ることが出来、非常に参考になりました。

    >魔界の仮面弁士様
    INSERT INTO 〜は使えるのですか。権限については問題がある可能性が高いため、もう一度調査してみます。

    元の環境に戻り次第、試した結果を報告したいと思います。

    とりあえず、解決とします。ありがとうございました。

記事No.5404 のレス /過去ログ15より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -