![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
sqlserver2005の初心者です
いままでaccessで標準モジュールにユーザー関数を作成していました
Function 年齢(SEI) As Integer
Dim SEIDATE, HONSEI, UNSEI, HONY, HONM, UPD
Dim MH, DH As Integer
MH = 0: DH = 0
SEIDATE = DateValue(SEI)
If Not IsDate(SEI) Then Exit Function
UPD = DateSerial(Year(Date), Month(Date), Day(Date) + 1)
If Val(Mid(SEIDATE, 6, 2)) > Val(Mid(Date, 6, 2)) Or (Val(Mid(SEIDATE, 6, 2)) = Val(Mid(Date, 6, 2)) And Val(Right(SEIDATE, 2)) > Val(Right(Date, 2))) _
Or Right(Date, 5) = "12/31" Then MH = 1
HONY = DateValue(DateSerial(Year(SEIDATE) + MH, Month(Date), Day(UPD)))
UNENREI = DateDiff("YYYY", HONY, UPD)
年齢 = UNENREI '-------------SYAIN990112年齢勤続クエリー用------------------
If Val(Right(SEIDATE, 2)) > Val(Right(Date, 2)) Then DH = 1
HONM = DateValue(DateSerial(Year(Date) - MH, Month(SEIDATE) + DH, Day(UPD)))
UGETUREI = DateDiff("M", HONM, UPD)
HONSEI = DateValue(DateSerial(Year(Date), Month(Date) - DH, Day(SEIDATE)))
UHIREI = DateDiff("D", HONSEI, UPD)
End Function
宣言がない変数はpublic変数を設定しています
ここに例 s33/10/05の生年月日を飛ばして戻り値をえています
sqlserverで作成する場合テーブル関数なのかスカラ関数なのかわかりません、
余計な部分ははぶいていただいて簡単でけっこうですのでsqlserverでの記述をおしえていただけないでしょうか
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
SQl SERVER は ACCESS のMDB と違い、クエリの中に関数を埋め込むことはできないというかやりか方がまったく違います。
従来の 標準モジュールとまったく同じとは行きません。
Sql SERVER 2005 は Express版ですか?
それとも Standard もしくは Developper ですか?
もし、ライセンスを持っていて Express版以外なら
SQL Server Management Studio からエクスプローラ風に簡単にDB
の操作できるようになっています。
ツリーの中のプログラミングに「関数」があるはずです。
ここにユーザー関数を記述します。
いずれにせよ SQL文とストアド、関数の作成方法の知識が必要になります。
検索サイト(Google)で→ Create Function Sql server 2005
を検索してください。
マイクロソフト のサイト
http://www.microsoft.com/japan/msdn/sqlserver/se …
などを参考にしてください。
もし SQL CLR を用いるのであれば VB.NET でも開発できるようですが そこまでしなくてもたいていは SQL で作成した関数で間に合うのではないかと思います。
もしくは関数にしなくてもストアド内で完結してしまうかです。
提示している 関数の仕様、つまりやりたいことを教えてください。
アドバイスできると思います。
あと、誰かすでに作成しているフリーの関数のリソースなどを用いることも可能です。
この回答への補足
早速の返信ありがとうございます
sqlserver2005はマイクロソフトの180日間評価版でやっています
3月にStandard板を購入してありますがosがxpproのため5月にpcとwin2003serverを購入してsqlserver2005Standardをインストールするよていです
今日少し私なりに考えて試してみました、動作はエラーなくできました
後日その記述を公開しますのでご指摘いただきたいとおもいます
やりたいことはinsertストアドで生年月日をなげてやると年齢がかえってきてテーブルに作成する方法で今日現在のもの、指定日をした年齢と2とうりの方法です
なんとかストアドからスカラ値関数をよびだして計算することができました、ありがとうございました
追記で記述を公開しましたのでご指摘おねがいします
それから関数はテーブル値関数もありますがどちらで作成すればよいでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) ExcelのVBAでシフト表を作っていますが、バグが出て困っています 2 2022/09/13 11:33
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
BULK INSERT時のNull許容について
-
Accessの重複なしのカウントの...
-
ACCESS2007 フォーム 「バリア...
-
SQL 不要な文字列を削除したい
-
Tverは無料でしょうか?
-
サーバー破壊
-
Visuaal Studio Community 2022...
-
Access2021 「ISNULL関数には引...
-
甘いものがすきなのってなおせ...
-
SQLて何ですか!
-
生え際から顎先まで17.5 頭頂か...
-
sql serveについて
-
SQLを駆使したデータ抽出ってど...
-
自己相関サブクエリと自己結合...
-
DBのテーブルの設計ができず困...
-
T-SQLを無料で勉強したいです。...
-
AccessのInsertクエリのあとつ...
-
これをSQL文で出来るでしょうか?
-
SQL 期間内の実施数を合計したい
-
SQLについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトサービスの...
-
SSIS関連の書籍を探しています。
-
ユーザー関数を作成したいのですが
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
SQLサーバー接続 特定のPCがWin...
-
エクセルマクロで指定範囲内の...
-
Excel-VBAの「しばらくお待ちく...
-
GROUP BYでエラーが発生
-
MSDEまたはSQLServerでReadOnly...
-
ACCESSで作成したアプリケーシ...
-
SQL Loaderを使いたい
-
AccessのDAO.ExecuteとDoCmd.Ru...
-
既定のインスタンスと名前付き...
-
新規saの作成方法について
-
セキュリティソフト カスペルス...
-
PostgreSqlでFunctionの作成に...
-
RDSデバイスCALを誤って消費し...
-
Access2010 accdbのエラー「ODB...
-
ユーザー定義関数内でのsp_exec...
おすすめ情報