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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>
■16635  【SQLServer2005】ストアドプロシージャについて
□投稿者/ OOO -(2008/04/09(Wed) 09:00:01)

    分類:[データベース全般] 

    お世話になります。

    【Visual Studio2005】
    【SQLServer2005】
    にてストアドプロシージャ(SP)の開発をしております。

    今回はSPについての質問になります。
    例えば、一つのSP内に結果セットが二つ存在する場合に画面側に返す時、
    アウトプットパラメータとして、データセットを指定することはできたりするのでしょうか?
    下記の例でいうと二つ結果セットが生まれますが、画面側にどのように返せばよいかが不明な状態です。

    基本的なことかもしれませんが、どうかご教授お願いいたします。


    例:
    IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.SP10060102'))
    DROP procedure dbo.SP10060102
    GO

    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    GO

    CREATE PROCEDURE TEST1
    /*--------------------------------------------------------------------------------
    < Explanation >
    ----------------------------------------------------------------------------------
    【システム名】社内システム
    【作成者】OOO
    【作成日】2008/04/09
    【処理概要】データを取得する。

    【修正履歴】

    ----------------------------------------------------------------------------------
    < Arguments Section >
    --------------------------------------------------------------------------------*/
    @Ng TypNengetsu6 -- 年月
    ,@HjnCd TypHoujinCd -- 法人コード
    ,@pErrKbn TypCheck OUTPUT -- エラー区分 "0":存在しない "1":存在する

    AS
    BEGIN
    /*--------------------------------------------------------------------------------
    < Valuables Section >
    --------------------------------------------------------------------------------*/
    DECLARE @error INT
    DECLARE @rowcount INT
    /*--------------------------------------------------------------------------------
    < Main Code Section >
    --------------------------------------------------------------------------------*/
    -- 一つ目の結果セット
    SELECT
    H1.HjnCd AS HjnCd -- 法人コード
    ,H2.HjnMe_Ryakushou AS HjnMe_Ryakushou -- 法人名称(略称)
    ,H1.Ng AS Ng -- 年月
    ,H1.UkZgkrkDk AS UkZgkrkDk -- 売掛前月繰越高
    ,H1.UaKei AS UaKei -- 売上計
    ,H1.HkeKn AS HkeKn -- 振替金額
    ,H1.ChouseiKn AS ChouseiKn -- 調整金額
    ,H1.SousaiKn AS SousaiKn -- 相殺金額
    ,H1.NkKnGkn AS NkKnGkn -- 入金金額現金
    ,H1.NkKnKgt AS NkKnKgt -- 入金金額小切手
    ,H1.NkKnGinHkm AS NkKnGinHkm -- 入金金額銀行振込
    ,H1.NkKnYbnHke AS NkKnYbnHke -- 入金金額郵便振替
    ,H1.NkKnUketoriTg AS NkKnUketoriTg -- 入金金額受取手形
    ,H1.TgZgkrkDk AS TgZgkrkDk -- 手形前月繰越高
    ,H1.UkTgtZn AS UkTgtZn -- 売掛当月残高
    ,H1.SakihidukeKgtTgtZn AS SakihidukeKgtTgtZn -- 先日付小切手当月残高
    ,H1.UkZnUchiTsjHin AS UkZnUchiTsjHin -- 売掛残高内通常品
    ,H1.UkZnUchiTkbHin AS UkZnUchiTkbHin -- 売掛残高内特別品
    ,H1.UkZnUchiHsHin AS UkZnUchiHsHin -- 売掛残高内販促品
    ,H1.YoshinGendoGk AS YoshinGendoGk -- 与信限度額

    FROM ( DchHoujinbetsuZandakaGenzai AS H1 ( NOLOCK ) -- 法人別残高(現在残高)
    INNER JOIN
    MstHoujin AS H2 ( NOLOCK ) -- 法人マスタ
    ON H1.HjnCd = H2.HjnCd
    )
    WHERE
    ((H1.Ng = @Ng ) OR ( @Ng IS NULL))
    AND ((H1.HjnCd = @HjnCd ) OR ( @HjnCd IS NULL))

    -- 二つ目の結果セット
    SELECT
    A1.MMKC
    FROM
    KMNJKL AS A1
    WHERE
    ((A1.Ng = @Ng ) OR ( @Ng IS NULL))



    SELECT @error = @@ERROR ,
    @rowcount = @@ROWCOUNT

    IF @error <> 0 -- エラー
    BEGIN
    RAISERROR (@error,0,1)
    RETURN @error
    END

    IF @ROWCOUNT = 0
    SELECT @pErrKbn = '1'
    ELSE
    SELECT @pErrKbn = '0'

    RETURN @error

    END
    GO
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■17191  TabControlで指定したタブを隠すには?
□投稿者/ もねを -(2008/04/18(Fri) 13:23:47)

    分類:[VB.NET/VB2005] 

    いつも参考にさせていただいています。

    現在、タブコントロールを配置して、3つのページを配置しています。
    3つめのタブページにはデータグリッドを貼り付けています。

    ある条件で3番目のタブを隠したいのです。
    また隠されたタブの中に配置しているデータグリッドの値などは計算で使用させたいのでタブが削除されては困るのです。
    非表示にしたいだけなのですが・・・

    プログラムをこのようにすると隠れたのですが何かふに落ちないのです。

    If 特定の条件 then
    tabMain.TabPages.RemoveAt(2) '←これで隠れた
    MsgBox(dgv3.Rows(0).Cells("単価").Value) '←確認のため表示してみた
    End if

    ソースを書いている途中に表示される画面では、
    ----------------------
    RemoveAt(Index as Integer)
    Index:
    削除するSystem.Windows.Forms.TabPageの0から始まるインデックス。
    ----------------------

    と表示されます。
    しかし tabMain.TabPages.RemoveAt(2) これを実行すると
    削除されたタブの中で使用されているデータグリッドの中身を見ることができます。

    RemoveAtとは削除ではなく非表示ということなのでしょうか?
    なにかアドバイスよろしくお願いします。

    環境:WindowsXP Home / VB2005 Pro /Frameworks2.0
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■17013  イベントの分け方の指針は?
□投稿者/ れい -(2008/04/15(Tue) 08:51:35)

    分類:[.NET 全般] 

    れいです。
    お世話になっています。

    たとえば。

    C言語などのオブジェクト指向をサポートしてくれない言語で、
    オブジェクト指向な組み方をする場合、
    構造体にXXXTypeとかXXXCodeといったフィールドを用意し、
    switchで場合分けすることがよくあります。

    あるクラスのフィールドをReadOnlyにしたい場合、
    ReadOnly専用のクラスを作る場合と、
    フラグか何かでReadOnlyに切り替わるようなクラスに変更する方法と、二つあります。

    このように、「型」と「フィールド」と「場合分け」は
    データとメタデータの関係で密接に関わっていて、
    そのうまい切り方もセンスのひとつだと思うわけですが。

    ----マエフリここまで----

    C#とVBのイベントの実装に関して、皆さんの実装の指針を教えてください。

    イベントをどこまでどうやって分解するべきかわからない場合の
    指針が欲しいと思っています。

    MouseClickとFormLoadのように、
    意味もパラメーターも違うのならイベントを分けべきなのはすぐにわかるのですが、
    微妙な場合は困ります。
    たとえば、KeyUp/KeyDownは.Netでは違うイベントですが、
    OS内部では同じイベントでパラメーターが違うだけです。
    これを「分ける」と決めた理由が欲しいと思います。

    イベントの場合、メタデータを含めると
    「イベント名」と「イベント引数の型」と「イベント引数内のフィールド」の、
    3つに情報を保持できますので、パターンがいっぱいあります。
    たとえば以下のようにイベントを分けることができます。


    #1 イベント名を分ける場合
    public class EventRaiserClass {
    public event EventHandler<AAAEventArgs> AAA;
    public event EventHandler<AAAEventArgs> BBB;
    public event EventHandler<AAAEventArgs> CCC;
    public event EventHandler<AAAEventArgs> DDD;
    }
    public class AAAEventArgs : EventArgs {};

    #2 イベント引数内のプロパティで分ける場合
    public class EventRaiserClass {
    public event EventHandler<AAAEventArgs> AAA;
    }
    public class AAAEventArgs : EventArgs {
    public EventType Type;
    }
    public enum EventType {
    AAA, BBB, CCC, DDD
    }

    #3 イベント引数の型だけで分ける場合
    public class EventRaiserClass {
    public event EventHandler<EventArgs> AAA;
    }
    public class AAAEventArgs : EventArgs {};
    public class BBBEventArgs : EventArgs {};
    public class CCCEventArgs : EventArgs {};
    public class DDDEventArgs : EventArgs {};


    もちろんこれらを組み合わせることも可能で、

    #4 イベントとイベント引数の型で分ける場合
    public class EventRaiserClass {
    public event EventHandler<AAAEventArgs> AAA;
    public event EventHandler<BBBEventArgs> BBB;
    public event EventHandler<CCCEventArgs> CCC;
    public event EventHandler<DDDEventArgs> DDD;
    }
    public class AAAEventArgs : EventArgs {};
    public class BBBEventArgs : EventArgs {};
    public class CCCEventArgs : EventArgs {};
    public class DDDEventArgs : EventArgs {};

    とか、いろいろ(2^3=8通り)作れます。

    いままで本能の赴くまま作っていたのですが、
    他人に説明できなくて困ります。

    時と場合による、というのはわかっていますが、
    その時と場合とをできるだけ分解して、
    適切な実装を得るための指針を得たいと思っています。

    たとえば、

    ・全部ひとつのイベントにまとめる
    ・EventArgsをできるだけ使いまわしできるように分ける
    ・イベントハンドラで場合わけしなくていい程度に分ける
    ・イベント名が長くならないように分ける

    など、いろいろ考えられると思います。

    みなさんは何を意識して組んでいるのか、
    何を意識して組むべきだと思っているのか、
    こうやったらうまくいった、という事例など、
    教えてください。
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■17255  自作DLL
□投稿者/ しんたろ -(2008/04/20(Sun) 09:47:05)

    分類:[.NET 全般] 

    はじめまして、VisualC# 2008 Exp、.NET Fream3.0を使って、自作DLLを作成し、DLLImportを使用して、プログラムを作成してましたが、
    うまく、DLLを読み込んでくれないみたいなのです。
    すいませんが、参考になる方法や、資料がありましたら、ご教授おねがいします。

    ソリューションを用意し、二つのプロジェクトにて、ソリュージョンビルドまではやってみました。

    -main.cs-(コンソールアプリ)--------------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace ProgramMain
    {
    // using UtilityMethods;

    class Program
    {
    [DllImport("UtilityMethods.dll")]
    public static extern long Add(long i, long j);

    [DllImport("UtilityMethods.dll")]
    public static extern long Multiply(long x, long y);

    static void Main(string[] args)
    {
    System.Console.WriteLine("Calling methods from MathLibrary.DLL:");

    if (args.Length != 2)
    {

    System.Console.WriteLine("Usage: TestCode <num1> <num2>");
    return;
    }

    long num1 = long.Parse(args[0]);
    long num2 = long.Parse(args[1]);
    long sum = Add(num1, num2);
    long product = Multiply(num1, num2);
    System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
    System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);

    }
    }
    }
    ---------------------------------------------------------------------------

    -Add.cs--(クラスライブラリのプロジェクトから作成)--------------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace UtilityMethods
    {
    public class AddClass
    {
    public static long Add(long i, long j)
    {
    return (i + j);
    }
    }
    }
    ---------------------------------------------------------------------------

    -multi.cs--(クラスライブラリのプロジェクトにファイル追加)------------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace UtilityMethods
    {
    class MultiplyClass
    {
    public static long Multiply(long x, long y)
    {
    return (x * y);
    }
    }
    }
    ---------------------------------------------------------------------------
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■17256  Re[1]: 自作DLL
□投稿者/ しんたろ -(2008/04/20(Sun) 10:14:26)
    No17255 (しんたろ さん) に返信
    > はじめまして、VisualC# 2008 Exp、.NET Fream3.0を使って、自作DLLを作成し、DLLImportを使用して、プログラムを作成してましたが、
    > うまく、DLLを読み込んでくれないみたいなのです。
    > すいませんが、参考になる方法や、資料がありましたら、ご教授おねがいします。
    >
    > ソリューションを用意し、二つのプロジェクトにて、ソリュージョンビルドまではやってみました。
    >
    > -main.cs-(コンソールアプリ)--------------------------------------------------------------------------
    > using System;
    > using System.Collections.Generic;
    > using System.Linq;
    > using System.Text;
    > using System.Runtime.InteropServices;
    >
    > namespace ProgramMain
    > {
    > // using UtilityMethods;
    >
    > class Program
    > {
    > [DllImport("UtilityMethods.dll")]
    > public static extern long Add(long i, long j);
    >
    > [DllImport("UtilityMethods.dll")]
    > public static extern long Multiply(long x, long y);
    >
    > static void Main(string[] args)
    > {
    > System.Console.WriteLine("Calling methods from MathLibrary.DLL:");
    >
    > if (args.Length != 2)
    > {
    >
    > System.Console.WriteLine("Usage: TestCode <num1> <num2>");
    > return;
    > }
    >
    > long num1 = long.Parse(args[0]);
    > long num2 = long.Parse(args[1]);
    > long sum = Add(num1, num2);
    > long product = Multiply(num1, num2);
    > System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
    > System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
    >
    > }
    > }
    > }
    > ---------------------------------------------------------------------------
    >
    > -Add.cs--(クラスライブラリのプロジェクトから作成)--------------------------
    > using System;
    > using System.Collections.Generic;
    > using System.Linq;
    > using System.Text;
    >
    > namespace UtilityMethods
    > {
    > public class AddClass
    > {
    > public static long Add(long i, long j)
    > {
    > return (i + j);
    > }
    > }
    > }
    > ---------------------------------------------------------------------------
    >
    > -multi.cs--(クラスライブラリのプロジェクトにファイル追加)------------------
    > using System;
    > using System.Collections.Generic;
    > using System.Linq;
    > using System.Text;
    >
    > namespace UtilityMethods
    > {
    > class MultiplyClass
    > {
    > public static long Multiply(long x, long y)
    > {
    > return (x * y);
    > }
    > }
    > }
    > ---------------------------------------------------------------------------
    >

    すいません、自己解決してしまいました。

    作成したDLLをソリューションエクスプローラにて、[参照設定の追加]で、ディレクトリを作成してあげて、Using似て追加されるのを確認後、「.」で関連付けを行うだけで、OKのようです。
    また何かありましたら、よろしくお願いします。
記事No.17255 のレス / END /過去ログ34より / 関連記事表示
削除チェック/

■17272  Re[3]: Java webシステム間連携について
□投稿者/ ま -(2008/04/21(Mon) 12:20:16)
    No17271 (凪瀬 さん) に返信
    > まず、どういう操作をしたらどういう挙動をした、という正確な情報を集めてください。
    > この際に、実験手順としてはノイズが入ることを防ぐためにも単純化することが望ましい
    
    了解です。
    
    午前中だけ掲示板にレスを返せる環境にありますが、作業場所ではリードオンリーで歯がゆいです;
    
    showModalDialog session
    
    で検索したところ、なにやら不具合っぽいのがなんとなく分かりましたが、当方の現象に関連する
    ものかどうかはちょっと怪しい、気もします。
    
    http://support.microsoft.com/kb/196383/ja
    これも既に直っている(軽減という言い方かな)?らしいのですが、これが開いた先じゃなくて
    開いた元のセッションが切れてしまうことに繋がるのかは文面からは読み取れませんでした。
    
    
    -----------
    -----------
    //呼び出し側 JSP の onload に仕込む。
    <script>
    window.attachEvent("onload", function (oButton, oForm, callbackFunc) {
    
    	oButton.onclick = function() {
    		var arr = [];
    		for (var i=0;i < oForm.elements.length;i++) {
    			arr.push( oForm.elements[i].cloneNode(true));
    			//select-one , radio , check はもう少し複雑ですが、ここでは省略
    		}
    		var params = [];
    		params.param = arr;
    		params.method = "POST";
    		params.action = "http://同じドメイン/servlet/xxx.class";
    		
    		var rets = showModalDialog("dummy.html",params, "dialogWidth:400px;dialogHeight:600px;");
    		
    		if (!callbackFunc) {
    			alert(rets);
    		}
    		else {
    			callbackFunc(rets);
    		}
    		return false;
    	};
    }(document.getElementById("xxxButton"), document.forms[0], function(rets) {
    	var s = [];
    	for (var a in rets) {
    		s.push( a + "=>" + rets[a]);
    	}
    	alert(s.join("\n"));
    }));
    </script>
    
    //dummy.html の<head> 直下に以下の<base>タグを記述
    <base target="_self" />
    
    //dummy.html の onload に仕込む
    <script>
    window.attachEvent("onload", function() {
    	var arg = dialogArguments;
    	var fom = document.createElement("form");
    	fom.action = arg.action;
    	fom.method = arg.method;
    	for (var i=0;i < arg.param.length;i++) {
    		var hid = document.createElement("input");
    		hid.type = "hidden";
    		hid.name = arg.param[i].name;
    		hid.id = arg.param[i].id;
    		hid.value = arg.param[i].value;
    		//select-one , radio , check はもう少し複雑ですが、ここでは省略
    		fom.appendChild(hid);
    	}
    	document.body.appendChild(fom);
    	
    	setTimeout(function() { document.forms[0].submit(); }, 100);
    	
    });
    </script>
    
    
    //dummy.html でポストしたコントロールサーブレットが返す JSP の中で
    <script>
    var retVal = [];
    retVal.result = "CANCEL";
    window.returnValue = retVal;
    
    function closeDialog() {
    	retVal.result = "OK";
    	retVal.NAME = document.forms[0].NAME.value;
    	retVal.ADDR = document.forms[0].ADDR.value;
    	
    	window.returnValue = retVal;
    
    	self.window.close();
    
    }
    </script>
    
    
    
    
    
記事No.17245 のレス /過去ログ34より / 関連記事表示
削除チェック/

■17103  ASP.NET で Web.Config 丸見え
□投稿者/ スギ -(2008/04/16(Wed) 21:43:11)

    分類:[ASP.NET (VB)] 

    現在、VisualStudio2005 + ASP.Net2.0 (VB) で webアプリ開発をしています。
    ASP.NET 開発は初心者です。
    今までは Java Webアプリの開発ばかりを実施していました。

    --------------
    Web アプリを以下の方法でIIS 上に公開しました。
    1:Windows XP 上で開発したWebアプリを ビルド→Webサイトの発行
      でコンパイル。
    2:作成されたファイル、フォルダを
      Windows Server 2003 へ xcopy する。
    3:Windows Server 2003 の IIS 6.0 で [新規Webサイト] 作成し、
      参照フォルダは xcopy したフォルダする。

    -----------
    上記方法で公開した Webアプリについて、
    ブラウザの URL に
     http://サーバー名/Web.Config
    を入力すると、Web.Config が丸見えになってしまいました。


    いままで、Web.Config はデフォルトではブラウザから
    は見えないものだと思っていました。
    (Java では WEB-INF 配下は見えないので、
     ASP.NET も同じように動作すると思っていました)

    ------
    Web.Config には DB接続定義などが存在しており、
    丸見えはまずいと考えました。
    いろいろ実験したところ、以下の方法で対処できることがわかりました。

    対処方法は3種類あります。

    1:エクスプローラで Web.Config を隠しファイルにする。

    2:IIS 管理コンソールで Web.Config のプロパティを開き、
    読み取りチェックをはずす。

    3:IIS 管理コンソールで Web.Config のプロパティを開き、
      エラーページへリダイレクトさせる。

    ここで質問です。

    Web.Config を見せないようにする方法としては、
    上記1〜3のうち、どの方法を利用するのでしょうか。

    それとも、IIS の挙動がおかしいのでしょうか?(インストールに失敗している?)
    (そもそも Web.Config が見えるのはおかしい)

    それとも上記1〜3以外の方法が存在するのでしょうか。

    今回は[新規Webサイト] で アプリケーションを公開していますが、
    [規定のWebサイト]で仮想ディレクトリで Webアプリを公開する場合も
    同じような方法で Web.Config を隠すのでしょうか。

    ASP.NET の開発に詳しい方、ご教授願います。

    以上です。
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■17379  MaskedTextBoxの誤動作について
□投稿者/ みそおでん -(2008/04/23(Wed) 11:35:33)

    分類:[VB.NET/VB2005] 

    はじめまして、こんにちは。
    いつも拝見させていただいております。

    今回は、MaskedTextBoxでの誤動作を確認しましたので、確認および回避策を頂きたく、投稿させていただきました。

    開発環境
    OS:WindowsXP Pro SP2
    言語:VisualBasic2005 Pro SP1
    アプリ:WindowsApplication

    誤動作発生状況
    1.MaskedTextBoxコントロールのKeyDownイベントで、Enterキーを拾い、モーダルなダイアログを表示します。
    2.表示したダイアログを閉じ、続けて数値をいくつか入力しますと、誤動作が発生します。(予期せぬ位置にスペースが入る、入力が無効になるなど)

    再現プログラム
    1.フォームを作成します。(フォーム名:Form1)
    2.Form1にMaskedTextBoxコントロールを作成します。(コントロール名:mskDate、Maskプロパティ:0000/00/00)
    -------以下 Form1ソース ----------------
    Public Class Form1

    Private Sub mskDate_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles mskDate.KeyDown
    If (e.KeyCode = Keys.Enter) Then
    MsgBox("")
    End If
    End Sub

    End Class
    ----------------------------------------

    再現動作
    1.mskDateにEnterキーを入力します。
    2.メッセージボックスを閉じ、続けて数字キーを数回入力しますと、誤動作が発生します。

    回避策
    Enterキー処理を、KeyDownではなくKeyPressイベントで処理することにより、回避できます。
    ただ、Shiftキー等の押下状態を簡潔に取得できるため、KeyDownイベントで処理ができればと考えております。

    その他
    マスクを設定しない場合、誤動作は発生しません。
    Enterキー以外でダイアログを表示した場合、誤動作は発生しません。

    以上ですが、回避策などありましたら、ご教授おねがいいたします。

親記事 /過去ログ35より / 関連記事表示
削除チェック/

■17399  Re[4]: MaskedTextBoxの誤動作について
□投稿者/ みそおでん -(2008/04/23(Wed) 14:01:42)
    No17397 (らすかる さん) に返信
    > ■No17384 (みそおでん さん) に返信
    >>επιστημηさん、返信ありがとうございます。
    >>
    >>>>今回は、MaskedTextBoxでの誤動作を確認しましたので、確認および回避策を頂きたく、投稿させていただきました。
    > >>
    > >>不具合だって自信があるなら
    > >>MSDNフォーラム: http://forums.microsoft.com/msdn-ja/default.aspx
    > >>VisualStudioフィードバック: https://connect.microsoft.com/VisualStudioJapan
    > >>に報告すればいいじゃん。
    >>
    >>ごめんなさい。
    >>勝手な先入観ですが、報告するよりもこちらに質問をした方が、解決の可能性があるかと思い投稿させていただきました。
    >>他の方にも同じ現象が起こっているのか確認したかったというのも理由の一つですが…
    >>
    >>ただ、επιστημηさんの仰る通り、様子を見て報告も考えております。
    > ↓これじゃない?
    > http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34680&forum=7&2
    > >e.Handled = True
    > 追加で・・・
    >

    らすかるさん、返信ありがとうございます。

    あ、e.Handled = True を質問の際に書き忘れてましたね(汗
    ただ、実際最初に症状を確認したソースには e.Handled = True はコーディングしていまして、
    試しに上記のソースを
    -----------------------------------------
    Public Class Form1

    Private Sub mskDate_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles mskDate.KeyDown
    If (e.KeyCode = Keys.Enter) Then
    e.Handled = True '<- e.Handledキャンセル追加
    MsgBox("")
    End If
    End Sub

    End Class
    -----------------------------------------
    としましたが、やはり同じ問題が発生してしまいます。

    このような現象が起きるのは、私だけなのでしょうか;;
記事No.17379 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17403  Re[6]: MaskedTextBoxの誤動作について
□投稿者/ みそおでん -(2008/04/23(Wed) 14:18:07)
    2008/04/23(Wed) 14:52:01 編集(投稿者)
    2008/04/23(Wed) 14:51:54 編集(投稿者)

    No17400 (επιστημη さん) に返信
    > >...
    >>としましたが、やはり同じ問題が発生してしまいます。
    >
    > MsgBox("") をコメントアウトしたらどうなります?
    > ↓が原因かを検証するために。
    >
    >>KeyDownやMouseDown、KeyUpなどのイベント中に
    >>モーダルダイアログを表示させたり、DoEventsなどを呼んだ場合、
    >>さまざまな不具合が生じます。
    >
    >


    よく確認もせず、解決済みとしてしまい申し訳ございません。
    引き続きεπιστημηさん、返信ありがとうございます。

    MsgBox("")をコメントアウトすると、問題の現象は発生しません。

    >>モーダルダイアログを表示させたり、DoEventsなどを呼んだ場合、
    >>さまざまな不具合が生じます。
    ここは時間がある時に勉強したいと思います。

    ちなみに上記にもしてありますが、問題が発生するのはEnterキーを拾った時だけで
    たとえば
    -----------------------------------------
    Public Class Form1

    Private Sub mskDate_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles mskDate.KeyDown
    If (e.KeyCode = Keys.Home) Then '<- EnterからHomeキーへ変更
    e.Handled = True '<- e.Handledキャンセル追加
    MsgBox("")
    End If
    End Sub

    End Class
    -----------------------------------------
    のように、Enterキー以外(詳しくは未確認)を拾うと、問題は発生せず、通常通り動きます。

    とにかく、時間ができたら勉強してみたいと思います。

    改めまして、皆様、本当にありがとうございました。
記事No.17379 のレス / END /過去ログ35より / 関連記事表示
削除チェック/

■17070  コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ ミケ -(2008/04/16(Wed) 11:55:52)

    分類:[.NET 全般] 

    お世話になります。
    一度送信したと思ったのですが、反映されていなかったので、もし二重に投稿していたら大変すみません。
    表題の件について質問させて下さい。

    開発環境
    OS:2000 Pro
    VB.Net:2003
    Office Access:2003

    日中Office Accessでユーザーが作業している後ろで、コンソールファイルを動かします。
    コンソールファイルは atコマンドでスケジュール登録しております。

    コンソール部分の作業が終わると、終了メッセージボックスを上げたいのですが
    以下の方法で挫折し続けています。
    改良点や他の方法などのアドバイス、もしくは引導を渡して頂けると、大変ありがたいです。


    Module Module1
    Declare Auto Sub MessageBoxW Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    <MarshalAs(UnmanagedType.LPWStr)> ByVal lpText As String, _
    <MarshalAs(UnmanagedType.LPWStr)> ByVal lpCaption As String, _
    ByVal uType As Integer)

    Public Declare Function FindWindowA Lib "user32" (ByVal cnm As String, ByVal cap As String) As Long

    Sub Main()
    '<API MessageBoxW>
    MessageBoxW(0, "終わりました", "タイトルです", 0) '----■方法1

    '<API FindWinow + MessageBoxW>
    Dim hWnd As Long
    hWnd = FindWindowA(vbNullString, "Microsoft Access")
    MessageBoxW(hWnd, "終わりました", "タイトルです", 0) '----■方法2

    '<Dos窓>
    Console.WriteLine("終了しました。閉じてください")'----■方法3

    '<WindowForm>
    Dim frm As frmMsg = New frmMsg
    frm.Show() '----■方法4
    frm.ShowDialog() '----■方法5
    frm = Nothing
    End Sub
    End Module

    ■1 API MessageBoxW
     結果:何も起こりませんでした。

    ■2 API FindWinow + MessageBoxW
     結果:デバッガが立ち上がり、エラーメッセージが表示されます

    「System.NullreferenceExceptionのハンドルされていない例外が ○○.exeで発生しました。
    追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。」
    となります。hWndには17桁の数字が入っていました。

    すみません、APIに無知なのですが、MessageBoxWの 
    ByVal hWnd As Long(オーナーウィンドウのハンドルを指定します。0 (NULL) を指定した場合、
    メッセージボックスはオーナーウィンドウを持ちません)

    は、この場合、
    コンソールファイルはウィンドウを持たないので、そのままメッセージを出せないが、開いている画面(Access)
    のWindowの番号をFindWindowで指定すると、Accessからメッセージが上がったように見える、という理解は
    間違っておりますでしょうか。

    ■3 DOS窓
     結果:何も起こっていないように見えます。

    一瞬書き込まれているのかもしれませんが、ユーザー操作で窓を閉じる事ができる方法がありましたら
    どうぞご指導お願い致します。

    ■4 WindowFormを作成して、Show
     結果:何も起こりません。

    ■5 WindowFormを作成して、ShowDialog
    結果:デバッガが立ち上がり、エラーメッセージが表示されます。

    System.InvalidOperationException' のハンドルされていない例外がsystem.windows.forms.dllで発生しました。
    追加情報:アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたは
    フォームを表示することは有効な操作ではありません。サービス アプリケーションからの通知を表示するには、
    ServiceNotification または DefaultDesktopOnly スタイルを指定してください。

    どうぞよろしくお願い致します。
    長文失礼致しました。
親記事 /過去ログ35より / 関連記事表示
削除チェック/

■17073  Re[1]: コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ やじゅ -(2008/04/16(Wed) 13:04:06)
    No17070 (ミケ さん) に返信
    > MessageBoxW(0, "終わりました", "タイトルです", 0) '----■方法1

    MessageBoxW(Me.hWnd , "終わりました", "タイトルです", 0) '----■方法1
    ではどうでしょうか?
    http://www.loadsystem.net/api/api22.htm
記事No.17070 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17078  Re[2]: コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ ミケ -(2008/04/16(Wed) 13:33:01)
    No17073 (やじゅ さん) に返信

    ご回答ありがとうございます。
    下記HP拝見しました。

    > MessageBoxW(Me.hWnd , "終わりました", "タイトルです", 0) '----■方法1
    > ではどうでしょうか?
    > http://www.loadsystem.net/api/api22.htm

    申し訳ございません、説明が不足しておりました。
    Module1 の Sub Main は VB.Netのコンソールアプリケーションのコードになります。
    教えて頂いた方法はAccess VBAだと思うのですが、atコマンドで動かすVB.Netのメッセージボックス
    の方法を探しております。

    自分が何か勘違いしておりましたら、すみませんがご指摘よろしくお願い致します。
記事No.17070 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17083  Re[5]: コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ ミケ -(2008/04/16(Wed) 14:26:15)
    No17082 (ぽぴ王子 さん) に返信

    ご確認して頂いてありがとうございます。

    > えーと…とりあえず at コマンドで設定するときに /interactive スイッチをつけてみる
    > というのはどうでしょうか。
    > ええ、消極的な対応ですが。ついでにコマンドプロンプトが表示されているような気が
    > しないでもないですが。

    at 14:22 /interactive "○○.exe" /k
    +
    Console.WriteLine("終了しました。閉じてください")'----■方法3

    を実行してみましたが、コマンドプロンプトは一瞬しか出てくれませんでした。
    指定方法が間違っておりますでしょうか。。。?

    > 逆に言うと、それ以外だと API を利用しても同じ結果になりそうな気がします。

    すみません、最初の投稿の
    >---------------------------
    ■2 API FindWinow + MessageBoxW
     結果:デバッガが立ち上がり、エラーメッセージが表示されます

    「System.NullreferenceExceptionのハンドルされていない例外が ○○.exeで発生しました。
    追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。」
    となります。hWndには17桁の数字が入っていました。

    すみません、APIに無知なのですが、MessageBoxWの 
    ByVal hWnd As Long(オーナーウィンドウのハンドルを指定します。0 (NULL) を指定した場合、
    メッセージボックスはオーナーウィンドウを持ちません)

    は、この場合、
    コンソールファイルはウィンドウを持たないので、そのままメッセージを出せないが、開いている画面(Access)
    のWindowの番号をFindWindowで指定すると、Accessからメッセージが上がったように見える、という理解は
    間違っておりますでしょうか。
    >---------------------------

    で回避できるとよいなと思ったのですが、やはり無理でしょうか。
記事No.17070 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17088  Re[8]: コンソールアプリケーションでメッセージボックスを出すには
□投稿者/ ぽぴ王子 -(2008/04/16(Wed) 15:24:51)
>
    No17083 (ミケ さん) に返信

    > at 14:22 /interactive "○○.exe" /k
    > +
    > Console.WriteLine("終了しました。閉じてください")'----■方法3
    >
    > を実行してみましたが、コマンドプロンプトは一瞬しか出てくれませんでした。
    > 指定方法が間違っておりますでしょうか。。。?

    これだと Console.WriteLine でコンソールに出力して、出力を待たずに
    終了してしまいますよね。なので一瞬しか出なくて正解です。
    MessageBox.Show を使って一旦処理を止めないといけなくて、そうすると
    自動実行ではインタラクティブに表示することは無理だ!じゃあ at コマンド
    に /interactive オプションをつけるしか…!
    という流れだったはずです。

    で、/interactive スイッチをつけなければ、メッセージボックスを表示させる
    といったインタラクティブな、ユーザーの操作を必要とするような処理はできない
    わけで、API を利用しても無理と書いたのはそのためです。

    逆に言えば、/interactive スイッチをつければできると思います。


    > コンソールファイルはウィンドウを持たないので、そのままメッセージを出せないが、開いている画面(Access)
    > のWindowの番号をFindWindowで指定すると、Accessからメッセージが上がったように見える、という理解は
    > 間違っておりますでしょうか。

    うーん、Access からメッセージが上がったように見えるというか、Access を
    親としてメッセージボックスを出したい、ということですね。
    まぁなんとかできるとは思いますが、あまりお勧めはしないかなぁ。

    仕様的にどうかという点では774RRさんに同意です。どちらかといえば Access
    内部でなんとかすべき話のような気もするし。VBA とかで。


    あとは /interactive スイッチをつけてインタラクティブに表示させるなら
    コンソールアプリケーションじゃなくて、普通のウィンドウアプリケーションに
    するのがいいかも、と思います。
    …っとフォームを出さずに実行させるのって VB だとどうするんだっけ。
    なんか調べてみたけどよくわかんなかったです。
    ウィンドウアプリケーションにして、ウィンドウを出さずに動作させれば
    コマンドプロンプトも表示されなくて(゚Д゚)ウマーだと思ったんだけど。
記事No.17070 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17479  Re[1]: ContentPlaceHolderについて
□投稿者/ ま -(2008/04/25(Fri) 11:53:12)
    No17467 (猫 さん) に返信
    MasterPage.Master
    +-----------+-------------------------------+
    | Content-  | ContentPlaceHolder            |
    | Place-    | MainView                      |
    | Holder    |                               |
    |           |                               |
    | TreeView  |                               |
    |           |                               |
    |           |                               |
    |           |                               |
    |           |                               |
    |           |                               |
    |           |                               |
    |           |                               |
    +-----------+-------------------------------+
    
    こーゆー画面のとき、
    <style>
    * {
      overflow:hidden;
      margin:0px;
      font-size:12px;
    }
    #LeftView {
       width:200px;
       overflow:auto;
       float:left;
    }
    #RightView {
       width:100%;
       overflow:auto;
       clear:none;
    }
    </style>
    
    <body>
    <div id="LeftView">
       <asp:ContentPlaceHolder name="TreeView" />
    </div>
    <div id="RightView">
       <asp:ContentPlaceHolder name="MainView" />
    </div>
    
    こーやんのかな、たぶん。CSS の BOX レイアウトが嫌なら、テーブルで囲って下さい。
    左のツリーの表示領域を左右に可変させたいなら、MSDN ライブラリの適当なページを
    開くとサンプルが目の前にあります。
    
    HTML/JavaScript(Ajax/DOM/JSON)/CSS/XML/ASPタグ/C# の勉強をやらないとダメなんじゃないの?
    作業と平行して覚えるのもいいけどさ。
    Webのプログラムって意外と覚えることが多いよ。
    
    嫌々させられてる、って思うと勉強が中々捗らないから、がんばってね。
    頭の中に出来上がりを想像しながらやるといいかもよ。
        
    
記事No.17467 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17542  VB6からの移行について(Basファイルについて)
□投稿者/ ナカ -(2008/04/26(Sat) 23:20:24)

    分類:[.NET 全般] 

    VB.NET2005で開発を行っています。
    どうぞ、よろしくお願いします。

    Classファイルにする意義があまりわからないので、意見をいただけると助かります。

    VB6では共通関数を一つ(実際は複数ですが)のbasファイルにPublic宣言で書いていました。
    「次からはModuleを使うな」と言われましたので、classファイルにしようかと思っていますが、
    とりあえず最初に書かれている「Public Modele」の部分を「Public Class」に書き換えました。
    次に、その関数を呼び出している箇所を見ると、

    ----------------------------
    call 関数名
    ----------------------------

    となっていますので、以下のように書き換えました。機能は満たしています。
    ----------------------------
    Dim cls As 共通関数のクラス名 = New 共通関数のクラス名

    Call cls.関数名
    ----------------------------


    ここで疑問に思う事があります。
    1.共通関数はいろんな箇所で使っています。使うたびにNewしていますが、
    いろいろなサイトに「Newするとコストが高い」と書かれています。
    だったらModeleのままで良い気もするのですが・・・
    Class化するメリットとは、開発上の都合と事だけなのでしょうか?速度的には遅くなる??

    2.開放する必要はあるのでしょうか?cls=nothingのような感じで・・・

    3.素人考えですが、global宣言でClassファイルをNewすれば全体で使える・・・などと思ってしまいます。
    駄目だとは思いますが、毎回Newするのも面倒だし、1の質問にもありますが遅くなるような気が・・・
    と思ったりしますが、やはり毎回Newした方が良いのでしょうか?


    長文、失礼しました。
    どうしてもわからないので質問させて頂きました。どうか、よろしくお願いします。
親記事 /過去ログ35より / 関連記事表示
削除チェック/

■16697  Re[3]: 個人製のマイナー言語を使ったみたいと思わないか諸君(長ぃ
□投稿者/ やじゅ -(2008/04/09(Wed) 18:23:51)
記事No.16690 のレス /過去ログ35より / 関連記事表示
削除チェック/

■16698  Re[4]: 個人製のマイナー言語を使ったみたいと思わないか諸君(長ぃ
□投稿者/ シャノン -(2008/04/09(Wed) 18:30:35)
    No16697 (やじゅ さん) に返信
    > Brainfuck
    > ブレインファックは難解プログラミング言語の一つ
    > http://ja.wikipedia.org/wiki/Brainfuck
    > http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=001295&__m=1
    >
    > http://lab.moyo.biz/garage/brainfuck/
    >
    > 例えば「Hello, World!」と表示するためのプログラムは以下のように記述します。
    > ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+
    > ++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
    >

    Whitespace で対抗
    http://ja.wikipedia.org/wiki/Whitespac

    Whitespace(ホワイトスペース)は、プログラミング言語のひとつであり、またそれを動作させるインタプリタを指している。WhitespaceはGPLにより配布されている。

    従来の言語において、空白に相当する文字(スペース、タブ、言語によっては改行も)は言語における単語の区切りであったが、この言語においては空白文字が言語の全てとなっている(それ以外の文字列はコメント扱いで無視される)。そのため、一見するとプログラムであることすらわからないという珍しい言語である。
記事No.16690 のレス /過去ログ35より / 関連記事表示
削除チェック/

■17611  Excelマクロにて小数部を求めたい
□投稿者/ 萩泉 -(2008/04/28(Mon) 11:19:52)

    分類:[VB6 以前] 

    使用OS:Windows2000
    開発環境・言語:MicrosoftExcel2000 , MicrosoftVisualBasic6.0

    こんにちは、お世話になります。

    エクセルの勤務表に、日勤時間や週勤時間等を自動記録するシステムを作成しています。
    現在は週の初めの営業日と、終わりの営業日の入力を求め、
    その週の勤務時間と標準勤務時間を記録する部分を作っております。

    そのうちの、標準勤務時間の部分が、
    小数部が切り捨てられるのか、本来の値とずれてしまいます。

    マクロなしでやると、標準勤務時間は以下の式を入力しています。
    =INT(0.319444444444444*営業日数*24/1)+MOD(0.319444444444444*営業日数*24,1)*60/100

    それをマクロでは以下のように記録してみました。
    ------------------------------------------------------
    Sub 週勤計算()

    Dim Startday As Integer '週始めの営業日を格納
    Dim Endday As Integer '週終わりの営業日を格納
    Dim Fixedstandard As Single '週の標準勤務時間を計算して格納

    '週初めの営業日の入力を求める。
    Startday = Application.InputBox("週の始まりの平日を入力してください。", "週勤務時間計算", , , , , , 1)
    '週終わりの営業日の入力を求める。
    Endday = Application.InputBox("週の終わりの平日を入力してください。", "週勤務時間計算", , , , , , 1)

    -中略(週の勤務時間を記録)-

    '記録部のセルを結合
    Range(Cells(Startday + 3, "M"), Cells(Endday + 3, "M")).MergeCells = True

    '週の標準勤務時間を算出してセルに入力
    Fixedstandard = (Int(0.319444444444444 * (Endday - Startday + 1) * 24 / 1)) + (0.319444444444444 * (Endday - Startday + 1) * 24 Mod 1) * 60 / 100
    Cells(Startday + 3, "M") = Fixedstandard

    End Sub
    ------------------------------------------------------

    MOD関数の動作が違うらしいということは理解できたのですが、
    小数部を切り捨てない関数、もしくは演算子が分からず、つまづいています。

    この質問を書くためにデバック作業をしながら確認をしていたら、
    int関数の動きも期待通りでない気がしてきました。
親記事 /過去ログ35より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>

ヒット件数が多いので過去ログ34〜49 までの検索結果 / 過去ログ50からさらに検索→

パスワード/

- Child Tree -