Calender

S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
<< August 2019 >>

Categories

Archives

Recent Entries

Recent Comment

Recent Trackback

w closet×JUGEM

-

オーケー馬のプログラムの一部を公開その1

オーケー馬のプログラムの一部を公開します。

このプログラムは、ボタンが押されたら、任意のファイルにデータを出力するものです。

個人で自由に作っているので、べたな書き方ですね。

仕事では、このようなプログラムは、最低な品質です。

いずれ、リファクタリングをしたいのですが、面倒くさいので・・・。(^^)/

 

データベース(Access)から情報を取得して、ファイルに書き出していますね。

10年分のデータを作成する、ベースの部分のデータ構築です。

では、そのデータベースの情報は、どのようにして作成したかというと・・・。

忘れました。(^_^)v

 

たぶん、Yahoo!競馬のWeb情報から取得したのだと思います。

その取得プログラムも、まだ、どこかに存在しているはずです。

みつかれば、公開する予定です。

まあ、そのような需要は、ないでしょうけどね・・・。(>_<)

 

 

'基本情報をバイナリファイルに書き込む
'基本情報:年月日、開催場所、レース番号、条件、トラックコード
Private Sub Command38_Click()
    Dim F As Integer
    Dim UDT() As BinX
    Dim cnt As Long
    
    Command38.Enabled = False
    
    F = FreeFile()
    Open "C:¥temp¥L1.Bin" For Binary As #F
    
    gstrSql = ""
    gstrSql = gstrSql + "SELECT "
    gstrSql = gstrSql + "count(*) as cnt "
    gstrSql = gstrSql + "FROM "
    gstrSql = gstrSql + "race "
    gstrSql = gstrSql + "where "
gstrSql = gstrSql + "year='" & areaY.Text & "' and "
gstrSql = gstrSql + "monthday='" & areaMD.Text & "' and "
    gstrSql = gstrSql + "JyoCD<='10' "
    
    ' テーブル名を指定してレコードセットを作成する
    Set Rs = db.OpenRecordset(gstrSql, dbOpenDynaset)
    
    cnt = 0
    
    If Rs.EOF = False Then
        cnt = Rs("cnt")
    End If
    
    Debug.Print cnt
    
    Rs.Close
    
    ReDim UDT(cnt - 1)
    
    gstrSql = ""
    gstrSql = gstrSql + "SELECT "
    gstrSql = gstrSql + "Year, MonthDay, JyoCD, RaceNum, JyokenCD5, TrackCD "
    gstrSql = gstrSql + "FROM "
    gstrSql = gstrSql + "race "
    gstrSql = gstrSql + "where "
gstrSql = gstrSql + "year='" & areaY.Text & "' and "
gstrSql = gstrSql + "monthday='" & areaMD.Text & "' and "
    gstrSql = gstrSql + "JyoCD<='10' "
    gstrSql = gstrSql + "ORDER BY "
    gstrSql = gstrSql + "Year, MonthDay, JyoCD, RaceNum"
    
    ' テーブル名を指定してレコードセットを作成する
    Set Rs = db.OpenRecordset(gstrSql, dbOpenDynaset)
    
    cnt = 0
    
    Do
        If Rs.EOF = False Then
            UDT(cnt).year = Rs("year")
            UDT(cnt).month = CInt(Left$(Rs("MonthDay"), 2))
            UDT(cnt).day = CInt(Right$(Rs("MonthDay"), 2))
            UDT(cnt).jyoCd = CInt(Rs("JyoCD"))
            UDT(cnt).raceNum = CInt(Rs("RaceNum"))
            
            If IsNull(Rs("JyokenCD5")) Or Rs("JyokenCD5") = "" Then
                UDT(cnt).JyokenCD5 = 0
            Else
                UDT(cnt).JyokenCD5 = CInt(Rs("JyokenCD5"))
            End If
            
            If IsNull(Rs("TrackCD")) Or Rs("TrackCD") = "" Then
                UDT(cnt).TrackCD = 0
            Else
                UDT(cnt).TrackCD = CInt(Rs("TrackCD"))
            End If
            
            cnt = cnt + 1
        Else
            Exit Do
        End If
        
        Rs.MoveNext
    
    Loop
    
    Rs.Close
    
    Put #F, , UDT
    
    Close #F

    Command38.Enabled = True
End Sub
 

  • 2019.08.14 Wednesday
  • 14:46

Comment
Send Comment








   
この記事のトラックバックURL
Trackback