tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルsqlの実行
記事No2224
投稿日: 2005/09/22(Thu) 12:09
投稿者
[OSのVer]:Windows 2000   [VBのVer]:VB.NET   2003

連日お世話になっています。
ご教授賜り事があり、書き込みいたしました。

フォームで社員の登録等を行うプログラムを作成しています。


各項目を入力し、登録ボタンをおしたら、

自動採番のチェックが済みならば T_社員情報テーブルから
社員コードの最大値をsql文でとってきて その最大値に+1をして
フォームの社員番号項目に表示させるようにしています。
コードは下記です。

      Dim max As Integer
            cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "データベース"
            cn.Open()

                If jidou.Checked = True Then            '自動採番チェック済み

                    'T_社員情報 社員No ← 社員No最大値 + 1
                    sql = ""
                    sql = "SELECT count(*) FROM T_社員情報"

                    oCommand = New OleDb.OleDbCommand(sql, cn)

                
                    max = CInt(oCommand.ExecuteScalar())
                    max = max + 1

    ・・・

例外エラーは MsgBox(Err.Number & "," & Err.Description)  でエラー番号
エラーメッセージで取るようにしてい
ます。

max = CInt(oCommand.ExecuteScalar()) ←ここでエラーになります。

そして「0,」という表示でエラーが内容が表示され、最大値を取ってくることができません。
どうすれば解決するのでしょうか

すみません。宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: sqlの実行
記事No2225
投稿日: 2005/09/22(Thu) 14:30
投稿者なおこ(・∀・)
お世話になります。

ここが参考になるかと。
hhttp://park5.wakwak.com/~weblab/selectCount.html
とりあえず、上記の例のように、Try〜Catchでかこんで
Catch以降にブレークポイントを付けて、
何の例外をCatchしたか教えてください。

あと、社員番号を自動採番するんだと思いますが、
sql = "SELECT count(*) FROM T_社員情報"
でなくて、
sql = "SELECT (MAX(社員No) + 1) As Next社員No  FROM T_社員情報"
としたほうがよさそうな感じもします。

[ツリー表示へ]
タイトルRe^2: sqlの実行
記事No2255
投稿日: 2005/09/26(Mon) 09:54
投稿者大輔
お返事が大変おそくなり、申し訳ございませんでした。
祝日中パソコンを開いていなかったものですから・・・.

エラーの件ですが、参考URLを見させていただき、
なにか、いろいろ弄くっていると
上手く解決いたしました。
ご迷惑お掛けして申し訳ございません.

ありがとうございました。

[ツリー表示へ]