- PR -

98で配布ファイルが実行できない

投稿者投稿内容
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-09-06 13:28
こんにちは。データベース(mdb)連結のPGMを作成し、リリースしようとしています。
XPのクライアントは問題なかったのですが、98のクライアントはframeworkをインストールした
だけではexeファイルが起動しなかったので、IEとMDACをバージョンアップさせれば、
起動するようになりました。

しかし、データベースと接続する際に、string was not recognized as a valid DateTime
というエラー(表示)が出てきます。XPには出てこないのに、98にだけ表示されるので
よく分かりません。

どなたか、お分かりの方、アドヴァイスお願いします。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-09-07 09:53
こんにちは。自分で色々調べてみたのですが、未だ解決に至っておりません。

ただ、少し近づいたかな、という気はします。

"Select 名前,場所,内容 from TSchedule where 日付 = @CalDate 公開 = 'all'" & _
"union select 名前,場所,内容 from TSchedule where 日付 =          @CalDate and 名前 = @Name"
oCommand.CommandText = strSelectSchedule

SQL文パラメータの設置
oCommand.Parameters.Add(New OleDbParameter("@CalDate", OleDbType.Date, )
oCommand.Parameters("@CalDate").Value = Me.dtpDate.Text

エラーの箇所が上記であることがわかりました。@CalDateのパラメータを外すと98でも問題なく機能しました。

ただ、XPで問題ないのに、98で動かないというのが???です。
stringやDateTimeという型の問題なのでしょうか?

因みにエラーは、
System.formatException:String was not recognized as a valid Datetime です。
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-09-07 11:26
2000年対応のときにAccessで作成された業務アプリでしたが NTでは動作してW9xでは動作しなかったことがあります。
動作しなくた原因を調べてみたら日付の扱いが原因でした。

地域と言語のオプションの設定等はどうなっていますかね?
日付の短い形式がyy/MM/ddになっていたのをyyyy/MM/ddにしたら直ったことがあります。
※記憶が定かじゃないんですが、もしかしたらyy年MM月dd日になっていたのかも..

NTは既定でyyyy/MM/ddになっていたのは確かだったと思います。

frameworkは使ったこと無いので、見当違いなことかもしれませんがダメもとで書いてみました。

[ メッセージ編集済み 編集者: jk 編集日時 2005-09-07 11:51 ]
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-09-07 11:49
jkさん、ありがとうございます。

日付をyy/MM/ddになっていたものを、yyyy/MM/ddに変更しましたが、同じでした。

う〜ん、さっぱり分かりません。
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-09-07 11:57
oCommand.Parameters("@CalDate").Valueの値はどんな値が渡っていますか?
yyyy年MM月dd日の型で渡っていたりしませんか?

だとしたら、長い形式のほうを変えればいいのかも知れないです。
なんにしろ日付が認識できない形式で渡っているエラーですよね?

だめなら、認識できる型に変換する関数を作成してから渡せばいいんじゃないですかね?
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-09-07 12:56
oCommad.Parameters("@CalDate").valueには、"2005年9月7日"{string}が渡っていました。

ここがDate型になっていないのが問題なのかな?と思い、
パラメータ設定の
Me.dtpDate.TextをDate.Parse(Me.dtpDate.Text)に変更すると、
oCommad.Parameters("@CalDate").valueには、"#9/7/2005"{date}が渡るようになったのですが、98で動かしたところ、以前と同様のエラーが出てきてしまいました。

jkさんのおっしゃる『認識できる型に変換する関数』というのを詳しく教えていただいてよいですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-07 12:57
こんにちは、じゃんぬ です。

結局「Me.dtpDate.Text」には何が入ってるんですか?
例外が、System.FormatException であるなら、疑わしいです。

# あ、タイミング悪かったみたい。

[ シグネチャを削除 ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-10-12 11:26 ]
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2005-09-07 14:20
じゃんぬさん、こんにちは。

98でのみエラーが出る原因は、プログラムに問題があるのでしょうか?

私は.netをはじめてから、3ヶ月ほどなのですが、できるだけ正しく覚えたいので、
是非ご指摘お願いします。

一応、自動 型変換しないように、Option Strict Onを入れているのですが。

[ メッセージ編集済み 編集者: モンジ 編集日時 2005-09-07 15:36 ]

スキルアップ/キャリアアップ(JOB@IT)