玄関へお回り下さい。 前のログ 次のログ

No.5100 画像ファイルについて  投稿者:mura [02/6/25(火)23:28分]

はじめまして。

お聞きしたいのですが
画像ファイルを読み込む時
Dir$()で括弧の中にファイルのある場所を指定するのですが
2つの画像ファイルを読み込む時はどうすればいいのでしょうか?
よろしくお願いします。

No.5099 Re: 閉じるボタンの取り外し方  投稿者:花ちゃん [02/6/25(火)23:11分]

回答ありがとうございます。


>FormのControlBoxプロパティをFalseにすれば

この方法はシステムメニューも無効にしてしまうのか、タイトリバーがドラッグで移動できて
しまいます。(リストボックスに付加したシステムメニューでも同じ)
私の説明が悪いのですが、そもそもは、リストボックスにタイトルバーとキャプションを付加したのですが
そのままでは、タイトルバーのドラッグで移動ができるので、移動が出来ないようにしたかったのです。
そこでシステムメニューを付けてメニュー項目を削除すると移動できなくなるのですが、閉じるボタンが
残ってしまうので何とかしたかったのですが、最小化ボタンや最大化ボタンは定数もあり取外しが可能
なのでひょっとして何とかなるのかなと思ったのですが?
 

No.5098 Re: ファイルの行数の取得  投稿者:K.J.K. [02/6/25(火)20:12分]

愚直に読み込んで、改行文字を数えるのでは。


No.5097 Re: 閉じるボタンの取り外し方  投稿者:K.J.K. [02/6/25(火)20:11分]

# おそらく、そういう意味ではないだろうと思いつつ書いてみたりします。


FormのControlBoxプロパティをFalseにすれば、その辺りは表示されませんよね。

No.5096 ファイルの行数の取得  投稿者:VB初心者 [02/6/25(火)20:09分]

ファイルの行数の取得方法を探しているのですがいい方法が見つかりません

申し訳ありませんが教えてください。

No.5095 Re: CDが取り出されたとき  投稿者:K.J.K. [02/6/25(火)20:08分]

ファイルシステム以外の方法で認識するとしたら、

1,デバイスドライバーを見張る (NT系のOSのみ。)
2,Shellの未公開無名API関数を使って監視
のどちらかになるでしょう。

No.5094 SQLへのテキスト取込  投稿者:マチャ [02/6/25(火)17:06分]

はじめまして。

sqlserver2000へのcsv取込なのですがどうしてもうまくいきません。
下のcsvをT_学生に取り込むのですが rst.Fields("gakusekino") と rst.Fields("gakusekino")
がNullを取得したり"60"や"61”を取得したりします。
ちなみにテキストファイルとテーブルの項目名や並びが異なります。
よろしくお願いします。


(csv)
gakusekino,gakacd,gakunen,class,simei
00C0008,CS,2, ,岡本 久美子
00C0020,C0,2, ,高橋 祥子
00K0060,K0,3,B,中川 和俊
00K0061,K0,3,B,中祖 洋基

(VB)
Dim cn As ADODB.Connection
Dim Filepath As String
Dim strsql As String

If Right(File1.Path, 1) <> "\" Then
Filepath = File1.Path & "\"
Else
Filepath = File1.Path
End If

Set cn = New ADODB.Connection

cn.ConnectionString = "Provider=MSDASQL;" & _
"Extended Properties=" & _
"DBQ=" & Filepath & ";" & _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Extensions=txt,csv,tab,asc;FIL=text"
cn.Open

'レコードセットをオープン
Set rst = New ADODB.Recordset
rst.Source = File1.FileName

rst.ActiveConnection = cn
rst.CursorType = adOpenStatic
rst.Open

strsql = "INSERT INTO T_学生"
strsql = strsql & "(学籍番号,学科コード,学年,クラス,氏名)"
strsql = strsql & " VALUES('"
strsql = strsql & rst.Fields("gakusekino") & "','" '学籍番号
strsql = strsql & rst.Fields("gakacd") & "'," '学科コード
strsql = strsql & rst.Fields("gakunen") & ",'" '学年
strsql = strsql & rst.Fields("class") & "','" 'クラス
strsql = strsql & rst.Fields("simei") & "','" '氏名
strsql = strsql & ")"

gConn1.Execute strsql



No.5093 re:閉じるボタンの取り外し方  投稿者:花ちゃん [02/6/25(火)16:00分]

回答ありがとうございます。

リストボックスにタイトルバーを表示させたのですが、移動で無いように
システムメニューを表示させ、その中の移動を削除すると移動できなくなるのですが
システムメニューの削除及びボタンの削除をしても、閉じるボタンが表示されたままなので
削除もしくは取り外しがしたいのですが?


No.5092 re:閉じるボタンの取り外し方  投稿者:A221 [02/6/25(火)15:47分]

これで閉じるボタンを無効にはできるのですが、解決になりませんか?

----------------------------------------------
Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Public Const MF_BYCOMMAND = &H0&
Public Const W_CLOSE = &HF060

Private Sub Form_Load()
Dim hwnd As Long
Dim ret As Long

hwnd = GetSystemMenu(Form1.hwnd, 0)
ret = RemoveMenu(hwnd, W_CLOSE, MF_BYCOMMAND)
End Sub

No.5091 CDが取り出されたとき  投稿者:maro [02/6/25(火)15:26分]

CDが取り出されたときに取り出されたというイベントが起こりますよね?

そのイベントを拾ってメッセージを出したいのですがイベントが拾えなくて困ってます。
どうしたらいいか誰かご存知ないでしょうか?

VB6.0(sp5) windows2000

No.5090 閉じるボタンの取り外し方  投稿者:花ちゃん [02/6/25(火)14:17分]

フォームのタイトルバーを残したまま[閉じる]ボタンを取り外したいのですが

可能でしょうか?
又はリストボックスに付加したタイトルバーをドラッグしても移動できない
ようにする方法を探しています。
何かいい方法がありましたらご教授願います。

VB6.0(SP5) WinXP

No.5089 re:CDのMDBを読み込む  投稿者:A221 [02/6/25(火)10:13分]

データベースは読み取り専用媒体では開けません。


ハードディスクにコピーした後、エクスプローラー(何でもよいですが。)から
ファイル属性の読み取り専用を削ってみてください。

No.5088 re:VBでSQL  投稿者:A221 [02/6/25(火)10:11分]

>strSQL = "SELECT COUNT(*) FROM table1"


あらかじめレコードセットを宣言しておき、
(Dim Recordset As Recordset)

DAOならば
Set Recordset=cn.OpenRecordset(strSQL)

ADOならば
Set Recordset=Cn.Execute(strSQL)

MsgBox Recordset.Field(0)

これで出力できると思います。

No.5087 CDのMDBを読み込む  投稿者:太朗 [02/6/25(火)9:59分]

CD-ROMの中に入っているmdbを見に行き、ADOで接続したいのですが「***.ldb」ができるせい?
でうまくいきません。

***.ldbを作らせない方法ってあるのでしょうか?

No.5086 VBでSQL  投稿者:初心者 [02/6/24(月)19:02分]

VBでSQL文を書いて実行した結果を変数に入れたいのですが、どうすればいいのかがわかりません。


strSQL = "SELECT COUNT(*) FROM table1"
cn.Execute strSQL
でSQLを実行させれるのはわかったのですが、その先がわかりません。
誰かお願いしますm(__)m

No.5085 RE:MSFlexGridに関して質問です  投稿者:マサコ [02/6/24(月)18:53分]

花ちゃんどうもありがとうございます。

無事取得できました。

No.5084 DataReportについて2  投稿者:Void [02/6/24(月)17:58分]

下記の私の書き込みの

DataReportで印刷するプリンターをソース上で変更するっと言うのは
Win.iniを書き換えることでごり押しで自己解決しました。
ごめいわくをおかけしました。

そこで新たな疑問がわいたのですが
用紙の設定や印刷向き(縦・横)などの設定は
DataReportで変更できないのでしょうか
ご指導ください。
よろしくお願い致します。


No.5083 RE:MSFlexGridに関して質問です  投稿者:花ちゃん [02/6/24(月)17:30分]

ここのMSFlexGrid関係のその他小技集のカレントセルの取得設定他行・列管理では

参考になりませんか?

No.5082 Re: VBからPowerPointのオブジェクトを使う方法  投稿者:小路 [02/6/24(月)17:26分]

とろさん,ありがとうございました。

おかげさまで一歩進むことができました。
Hondaさんもありがとうございました。
また助けていただくこともあると思いますので,その節はよろしくお願いします。

No.5081 MSFlexGridに関して質問です。  投稿者:マサコ [02/6/24(月)17:03分]

MSFlexGridに関して、ある行を反転表示させたとき、その反転表示している行番号の値を

取得したいのですが、やり方がわかりません。どなたか教えていただけないでしょうか。

No.5080 csv取込が正しくとりこめません。  投稿者:武田 [02/6/24(月)16:02分]

SQLサーバー2000へのCSV取込なのですが例えばCSVにおいているデータが

"00A01"といったデータの場合varchar型のSQLサーバーにInsertしようとすると
"01"と取得してしまいます。なにかいい方法をご存知の方がいらしたらよろしく
お願いいたします。

No.5079 VB・ACCESSの排他制御  投稿者:すぎ [02/6/24(月)15:15分]

みなさん はじめまして。すぎです。

今、ACCESSの排他制御で迷ってます。

あるmdbファイルへアクセスしたときに、
既に誰かが更新可能なレコードセットのオープンをしていた場合は
自分は読取専用でしかレコードセットのオープンができないように
したいのですがやり方がわかりません。
非常に基本的なところのようで申し訳ないのですが。

環境はWin2000, VB6.0,SP5, Access2000です。

No.5078 テーブル項目は数値ですがcsvデータがNull  投稿者:ta [02/6/24(月)14:54分]

すみません。

SQLサーバー2000でcsv取込しようとしているのですがintに対してcsvの方はnullのため
エラーとなってしまいます。数値変換関数はないのでしょうか?よろしくお願いします。

No.5077 DataReportについて  投稿者:Void [02/6/24(月)13:23分]

KJKさんまたまたご指導およびご指摘ありがとうございました。


しつこくてもうしわけないのですが
調べても見つからないのでまた質問させていただきます。
PrinterオブジェクトでDataReportを印刷できないのであれば
DataReportで印刷を考えているのですが
プレビュー上のボタンを使用してプリンターを変更するのではなく
ソース上で印刷するプリンターを変更することが可能なのでしょうか?
可能ならばご指導ください。
よろしくお願い致します。

No.5076 re:ディレクトリリストボックス    投稿者:じょうじ [02/6/24(月)10:40分]

花ちゃんありがとうございました。

いろいろ考えて結局エクスプローラー起動させてそこから
参照するようにしました。これだと隠しファイルを表示
してないと使えないですけど練習なのでOKにしました。

No.5075 Re: 印刷について2  投稿者:K.J.K. [02/6/23(日)22:27分]

# 最初に条件を書いておけば、無駄な手間をかけずに済んだのでは。


DateReportとPrinterオブジェクトには、直接の繋がりがありません。

No.5074 印刷について2  投稿者:Void [02/6/23(日)20:39分]

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

何とか解決できました。

もうひとつ疑問があるのですが
どう調べてもわかりませんでした。

Printerオブジェクトを使用して
DataReportを印刷することは可能なのでしょうか?
可能であればご指導ください。

また、不可能であれば
グループ化したデータ(請求書の形等)を印刷する方法等あれば教えてください
よろしくお願い致します。

No.5073 Re: 印刷について  投稿者:K.J.K. [02/6/23(日)11:08分]

とりあえず、Printerオブジェクトについて調べてみては。

「通常使うプリンター」を変更するのならば、NT系のOSでは多少こった作業をする
必要があります、が、Microsoftのサイト内で、そのコードは見つかります。

No.5072 印刷について  投稿者:Void [02/6/23(日)9:46分]

VBのソース上で印刷するプリンターを変更することは可能でしょうか?

(コモンダイアログをだせば出来るのですが出さずにです。)
また、通常使うプリンターのチェックを変更することは可能でしょうか?
よろしくお願い致します。

No.5071 下の内容 解決しました。  投稿者:にっし [02/6/22(土)20:54分]

下の内容解決しました。すいませんでした。

変数に strfile  といるのですが、彼がソース上じゃ
strfille に変化してました。

No.5070 実行時エラー429 (エクセル起動時に・・・)  投稿者:にっし [02/6/22(土)19:55分]

教えて下さい。


VBからエクセルをレポート代わりにし
データをエクセルに出力しプレビューを立ち上げる。
という動作を組んでみたのですが getobject(,"") で
Activex のエラーが跳ね返ってきます。

NETで調べてみたのですが、 それについてのエラーの回避方法として
「サービスパック 5をあてなさい」 
「レジストリの DAO350のパスが悪いのでレジストリを書き直しなさい。」
等など、色々試しては見たもののどれもクリアできずじまいです。

環境・・・・・

OS ・・・・ WIN2000 server
        VB6.0
data 格納場所はアクセス2000です。
SP5 は当てました。

        DAO3.6をつかってます。
        DLLの修正では350ばかりの話しか見当たらないのですが・・
-----------------------------------------------------------------------
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String,
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1


Private Sub cmdprev_Click()

Dim stror As String
Dim strfile As String
Dim lngpr As Long
Dim lngre As Long
Dim xlsApp As Object
Dim xlsBook As Object
Dim xlsSheet As Object

strfille = "C:\新規フォルダー\test.xls"
stror = "open"
lngre = ShellExecute(0, stror, strfille, vbNullChar, vbNullChar, SW_SHOWNORMAL)

Set xlsApp = GetObject(, "Excel.Application")
Set xlsBook = xlsApp.ActiveWorkbook
Set xlsSheet = xlsBook.Worksheets(1)
Call EXL_BlockRep(xlsBook, xlsSheet)

xlsSheet.PrintPreview
xlsBook.Saved = True
xlsBook.Application.Quit

If lngre <= 32 Then lngre = 0

Set xlsSheet = Nothing
Set xlsBook = Nothing
Set xlsApp = Nothing

End Sub

------------------------------------------------------------------------

Private Sub EXL_BlockRep(xlsBook As Object, xlsSheet As Object)
Dim db As Database
Dim rs As Recordset

Dim loc1 As Integer
Dim loc2 As Integer
Dim loc3 As Integer
Dim i As Integer
On Error Resume Next
Set db = OpenDatabase("C:\新規フォルダー\db.MDB")
Set rs = db.OpenRecordset("select * from M_test")
Const xlLineMarkers = &H41
Const xlLocationAsObject = 2


以下・・・・ エクセルに出力する内容
-------------------------------------------
すみません、どなたか教えて下さい。


No.5069 re:ディレクトリリストボックス  投稿者:花ちゃん [02/6/21(金)21:19分]

VBラボさん(http://www.remus.dti.ne.jp/%7Ey-mac/apilib/flddlog.htm)に

フォルダー参照ダイアログの表示 のサンプルがあります。それなら表示できます。

No.5068 re:ディレクトリリストボックス  投稿者:じょうじ [02/6/21(金)14:33分]

>隠し属性を持つフォルダーはディレクトリリストボックスでは表示されません。

>(VBの仕様のようです)
>元々変更を加えられたくないように隠し属性にされているのですから、なぜ隠し属性の
>フォルダーにアクセスが必要なのか知りませんが、どうしてもなら、フォルダーの属性
>を変更するなり、直接操作するなりされるしか方法がないのでは?

回答ありがとうございます。今属性変更プログラムを作成しているのですが
隠しファイルを通常ファイルに直したい場合に表示させたかったんですけど・・・
別の方法を考えてみます。ありがとうございました。

No.5067 Re:Re:二つのVSFlexGridを連動させる  投稿者:kumori [02/6/21(金)14:16分]

ゆう(U)さん、ご回答ありがとうございます。

ゆう(U)さんの記述、とても参考になりましたので、
この記述をVS用に調整すればできそうです。
ありがとうございました。

No.5066 Re:ユーザーによるコントロールのサイズ調整  投稿者:とろ [02/6/21(金)13:00分]

> デザイン時と同じ感じなら、変更するコントロールの周囲に

> 8個小さなコントロールを配置し、それの移動で絵のサイズ
> を調整し直すと良いと思います。

とりあえず、右下の1個だけで実現しています。
ピクチャーボックスをフォーム上に2つ配置して、
実行してみて下さい。図形の場合は、もっと複雑になると思いますけど、
同じような感じでできると思います。
図形を何で描画しているのかによりますが...

'********************************************************************************
Option Explicit
Private bMouseDown As Boolean
Private Sub Form_Load()
With Picture1
.Visible = False
.Move 0, 0, 150, 150
.BackColor = vbBlack
.BorderStyle = vbBSNone
.MousePointer = vbSizeNWSE
.ZOrder
End With
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
bMouseDown = True
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If bMouseDown = True Then
With Picture1
.Move .Left + X, .Top + Y
End With
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
bMouseDown = False
With Picture2
.Move .Left, .Top, Picture1.Left - .Left + 100, Picture1.Top - .Top + 100
End With
Picture1.Visible = False
End Sub
Private Sub Picture2_Click()
With Picture1
.Move Picture2.Left + Picture2.Width - 100, Picture2.Top + Picture2.Height - 100
.Visible = True
End With
End Sub

No.5065 Re:ユーザーによるコントロールのサイズ調整(初めまして)  投稿者:ゆう(U) [02/6/21(金)11:41分]

> 直線・三角形・四角形など線を引き、その枠をつまみ縮小・拡大を

> したいのですが、このような操作も出来るのでしょうか。
その線の絵は何処へ何で引きますか?

「Line メソッド」
「Line コントロール」

で、枠とは?


イメージとしては、デザイン時の「シェイプ コントロール」
ですか?


デザイン時と同じ感じなら、変更するコントロールの周囲に
8個小さなコントロールを配置し、それの移動で絵のサイズ
を調整し直すと良いと思います。


※線画の管理法とかもわからないので、的はずれかも・・・

No.5064 RE:エクセルの編集モードをコマンドモードに。  投稿者:みゃお [02/6/21(金)10:51分]

残念ながら、編集モードのときにVBAは動きません。

No.5063 RE:VBからエクセルブックのシートコピーに失敗する  投稿者:みゃお [02/6/21(金)10:43分]

> WBook.Worksheets("シート1").Copy , WBook.Worksheets(WBook.Worksheets.Count)

>上記だと「Copyメソッドに失敗しました」とメッセージが表示されてしまいます。

Copy のあとのカンマは必要ありません。

あと、
> Dim WSheet As Worksheet 'エクセルシート
これも、EXCEL.Worksheetとしたほうがいいのでは。(なんとなく)

No.5062 RE:ディレクトリリストボックス  投稿者:花ちゃん [02/6/21(金)10:34分]

隠し属性を持つフォルダーはディレクトリリストボックスでは表示されません。

(VBの仕様のようです)
元々変更を加えられたくないように隠し属性にされているのですから、なぜ隠し属性の
フォルダーにアクセスが必要なのか知りませんが、どうしてもなら、フォルダーの属性
を変更するなり、直接操作するなりされるしか方法がないのでは?

No.5061 Re:二つのVSFlexGridを連動させる  投稿者:ゆう(U) [02/6/21(金)9:16分]

> 二つのVSFlexGridを連動させることはできますか?

可能だと思います・・・
が、私はそのコントロールを持ってません

「MSFlexGird コントロール」でのサンプルを書きますので
似たような方法で可能だと思います。

サンプル)
'同じ内容を2つ作成
Private Sub Form_Load()
Dim i As Long

With MSFlexGrid1(0)
.Rows = 100
.Cols = 5
Load MSFlexGrid1(1)
For i = 0 To .Rows * .Cols - 1
.TextArray(i) = i
Next
MSFlexGrid1(1).Left = .Left + .Width
End With
With MSFlexGrid1(1)
For i = 0 To .Rows * .Cols - 1
.TextArray(i) = i
Next
End With
MSFlexGrid1(1).Visible = True
End Sub

'ここがメイン
Private Sub MSFlexGrid1_Scroll(index As Integer)
Static flg As Boolean
Dim i As Long

If flg Then Exit Sub
flg = True
i = (index + 1) Mod 2
With MSFlexGrid1(i)
.TopRow = MSFlexGrid1(index).TopRow
.LeftCol = MSFlexGrid1(index).LeftCol
End With
flg = False
End Sub

No.5060 RE:RE:ディレクトリリストボックス  投稿者:じょうじ [02/6/21(金)9:16分]

早速の返答ありがとうございます。


>>ディレクトリリストボックスで隠しファイルを表示させるにはどうすればよいのでしょうか?

>隠しファイルを表示させるのなら ファイル リストボックスコントロールの
> File1.System = True
> File1.Hidden = True
>で表示します

これでファイルの隠しファイルは表示されるのですが、フォルダーが隠しファイルになっているものを
表示したいのですがどいうすればいいのでしょうか?

No.5059 VBからエクセルブックのシートコピーに失敗する  投稿者:Hypnosis [02/6/20(木)19:00分]

はじめまして、Hypnosisと申します。


タイトルの通りなんですが、
1.VBでGetObjectを用いてエクセルブックをオープン。
 Dim WBook As Excel.Workbook 'エクセルブック
 Dim WSheet As Worksheet 'エクセルシート

 Set WBook = GetObject(BookFName)

2.ワークシートをコピー。
 WBook.Worksheets("シート1").Copy , WBook.Worksheets(WBook.Worksheets.Count)

上記だと「Copyメソッドに失敗しました」とメッセージが表示されてしまいます。
原因がさっぱり見当もつきません。
GetObjectを用いない場合はうまくいったような覚えがあるのですが。
(諸事情によりGetObjectを用いなければならないのです。)

些細なことでも構いませんので、なにかご存知の方よろしくおねがいします。

No.5058 初めまして  投稿者:ココア [02/6/20(木)18:41分]

VBを最近始めたばかりの初心者ですみません。

直線・三角形・四角形など線を引き、その枠をつまみ縮小・拡大を
したいのですが、このような操作も出来るのでしょうか。
本を何冊か買ったのですが、してみたい部分が載っていなく
可能かどうか分からないです。
よろしくお願い致します。

No.5057 RE:ディレクトリリストボックス  投稿者:花ちゃん [02/6/20(木)17:59分]

>ディレクトリリストボックスで隠しファイルを表示させるにはどうすればよいのでしょうか?


隠しファイルを表示させるのなら ファイルリストボックスコントロールの
File1.System = True
File1.Hidden = True
で表示します。

No.5056 ディレクトリリストボックス  投稿者:じょうじ [02/6/20(木)17:33分]

初めまして。最近VB始めて戸惑ってます。

ディレクトリリストボックスで隠しファイルを表示させるにはどうすればよいのでしょうか?
わかる方がいらっしゃればお教え願います。

No.5055 re:re:Re:ADOのRecordcount     投稿者:ゆずマン [02/6/20(木)17:23分]

A221さん。ありがとうございます。

何とかレコード数が取得できました。
原因は、トランザクションのほうにあったみたいです。
トランザクションでうまくいってなかったのでレコードがとれたり取れなかったりしていたみたいです。

No.5054 re:Re:ADOのRecordcount(追伸)  投稿者:A221 [02/6/20(木)14:05分]

僕の環境ではサーバーカーソルでも帰ってきました。(・・)

No.5053 re:Re:ADOのRecordcount   投稿者:A221 [02/6/20(木)14:04分]

もし、サーバーカーソルでなければいけないのならば別ですが、

一度カーソルをクライアント側においてみてはどうですか?

一応下のコードと仮DBで試してみたらrequery後に帰ってきました。

-----------------------------------------------------------------
Dim cn As New ADODB.Connection
Dim sqltmp As String
Dim Count As Long

With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\xxxx.mdb;"
.CursorLocation = adUseClient
.Open
End With

rs.open sqltmp,cn,adOpenKeyset, adLockOptimistic
Count = rs.RecordCount

sqltmp="Insert into xxxxx"
cn.execute sqltmp

rs.Requery
Count = rs.RecordCount

No.5052 Re:ADOのRecordcount    投稿者:ゆずマン [02/6/20(木)10:32分]

RecordsetのRequeryをしてレコードセットを更新しているのですが・・・


***************************************************************************
dim dbs As New ADODB.Connection
Dim record As New ADODB.Recordset

'DBのオープン(ADO)
dbs.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\ファイル名;"

ここにinsertやdeleteなどの文を書いています

'レコードセットのオープン
record.Open "select * from dbo_TBLUSER", dbs, adOpenKeyset, adLockOptimistic

'レコードセットの更新
record.Requery
'列数の取得
Colcount = record.Fields.Count

csql = "select count (*) As USE_ID from dbo_TBLUSER" '行数を取得するSQL
Set record = dbs.Execute(csql)

Rowcount = record.Fields(0)
************************************************************************

Colcount、Rowcountという変数にレコードセットの列数と行数を格納して
MSFlexGridのRowsをRowcountにしてグリッドを表示させています。
なのでレコードセットのレコード数が正しくとれないと表示がおかしいのです。
SQLを使ってもRecordcountプロパティを使ってもうまく取れません・・・
insertやdeleteをしないとちゃんととれるのですが、
レコード数を変更してしまうと正しくとれたり、取れなかったりします。
本当にどうしていいかわからなくて困っています・・・
わかる方がいましたらよろしくお願いします。

No.5051 Re:ADOのRecordcount  投稿者:A221 [02/6/20(木)3:55分]

>SQLによるインサート、デリート時にレコードカウントが正しくとれていないのです

>普通に何もしなければレコードは正しくとれるのですが
>インサートとかをしてレコード数に変更があったときに正しく取れなかったりします。

ADOオブジェクトのRefreshはしましたか?

玄関へお回り下さい。 前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0