MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[738]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(738番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: フォームでデータ更新

Date: Tue, 5 Aug 2003 12:58:40 +0900
From: "koyama" <koyama@kensui.on.arena.ne.jp>


小山といいます。

堀川様ご回答ありがとうございました。
月末に業務が多忙だったためなかなか出来ずに返事が遅れてしまいました。

> http://www.horikawa.ne.jp/msde/gihyo/sec23.html
http://www.horikawa.ne.jp/msde/gihyo/sql23/form12.html
この部分を参考にして下記の様にVBA側のコードを書きました。
=================================================
   Dim nyuryoku As String
    Dim hinmeiNO As String
    Dim irisu As String
    Dim r$

    Set cn = CurrentProject.Connection

    '変数の設定
    nyuryoku = Forms(Yobidasi_F).Controls("入力日")
    hinmeiNO = Forms(Yobidasi_F).Controls("品名コード")
    irisu = Forms(Yobidasi_F).Controls("入数1")

    Set rs = New ADODB.Recordset
    Set cmd = New ADODB.Command

    rs.CursorLocation = adUseServer
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic

    r$ = "EXEC 入力データ呼出_store @nyuryoku=" & nyuryoku & ",@hinmeino=" &
hinmeiNO & ",@irisu =" & irisu

    rs.Open r$, cn, , , adCmdText    ←
<<以下略>>
==================================================

しかし”←”の所デバッグが起き
「行1:'/'のあたりで不正な構文があります。」と表示されます。

プログラムを作って"osql"コマンドから実行させてバグを見つけてみたのですが、
どうも文字列から日付型にうまく変換できていないような気がします。

1.エラーの出るストアド==========================================
ALTER PROCEDURE 入力データ呼出_store
 (
  @nyuryoku varchar(100),
  @hinmeino varchar(100),
  @irisu varchar(50)
 )
AS
SET NOCOUNT ON
 DECLARE @hinmeiid int
 declare @nyuryokudate datetime
 declare @hinmeicode int
 declare @irisudata float

 set @nyuryokudate=convert(datetime,@nyuryoku)
 set @hinmeicode=convert(int,@hinmeino)
 set @irisu=convert(float,@irisu)

 set @hinmeiid=(select 品名入力ID from 品名入力T where 入力日=@nyuryokudate
and 品名コード=@hinmeicode and 入数=@irisudata)

 select b.品名入力ID,b.入力日,b.品名コード,b.入数,a.店舗入力ID,a.区分コード
,a.価格,a.店舗コード,a.個数,数量,a.合計金額 from 店舗入力T as a inner join
品名入力T as b on a.品名入力ID=b.品名入力ID
 where a.品名入力ID=@hinmeiid order by a.店舗入力ID
 RETURN
========================================================

2.うまく実行できたトランザクション(osqlで実行させまし
た。)===========================
USE 天満屋EOSDB
GO
 declare @nyuryoku datetime
 declare @hinmeino int
 declare @irisu float
 DECLARE @hinmeiid int
 declare @strSQL varchar(200)

 set @nyuryoku=convert(datetime,'2003/8/4')
 set @hinmeino=convert(int,'70')
 set @irisu=convert(float,'4.0')

set @hinmeiid=(select 品名入力ID from 品名入力T where 入力日=@nyuryoku and
品名コード=@hinmeino and 入数=@irisu)

 select b.品名入力ID,b.入力日,b.品名コード,b.入数,a.店舗入力ID,a.区分コード
,a.価格,a.店舗コード,a.個数,数量,a.合計金額 from 店舗入力T as a inner join
品名入力T as b on a.品名入力ID=b.品名入力ID
 where a.品名入力ID=@hinmeiid order by a.店舗入力ID

GO
==================================================
文字列から日付型に変換するために、"convert関数"を使用したのですが、
このやり方がだめなのでしょうか?
2.ではうまくいったのですが、1.ではだめでした。

何か他に良い方法があるのでしょうか?
よろしくお願いします。

長文になって失礼しました。




[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。