タグ: MS-Access

  • [vba]ms-Access綱渡り開発。新作ediソフト完成かな!

    2024年2月1日、お得意先の「edi受発注システム」スタート

    その準備に、年明けから仕事の合間で少しずつediソフト開発。

    プログラミングに専任できないので、開発時間が絶対的に足りません!

    形部流

    ざっくりなプロトタイプをつくり
    そのままスタート!

    遭遇するエラーを、その度に潰しながら
    データ送受信を半手作業でこなし数日稼ぐ。
    その間に完成度を上げていく!

    サービススタートから1週間、ようやく私の新プログラム、使い物になるレベルになりました。

    経験上、

    テストサーバ+数行のテストデータでの半月分の開発より
    実サーバ+実データをあつかうパニック下の2日間の方が開発効率100倍上です。

    ms-Accessは零細企業の救主。自作EDIソフト完成かな!

    この開発スタイルで、30本以上作りました。

    素人でも本格プログラムが作れるms-Access様
    あなたは中小零細企業の救主!

    得意先数店が数年ごとに、より良いediサービスを探して変えていく。
    その度にプログラムを外注すると、IT投資を回収できた頃に、また新プログラムが必要になる苦しいスパイラル!

    ediホスティングサービス登場後は、素人が頑張って自作しないと採算が取れない時代になりました。

    頑張って勉強したら何でも作れる
    ms-Accessは最強のツールです。

    ediホスティングサービス時代、同業他社はどう対応してるんだろう?

    私は、疲れました

    体力・年齢的にそろそろ限界

  • [vba]マジ、2021年4月までにプライスカード作り直し!

    どうしよう?

    突然、営業担当から相談された

    2021年3月末までに
    得意先のプライスカードを
    内税価格に作り変える必要が!

    ネットで調べると確かにそう書いてる!
    猶予期間が終了し2021年4月1日から総額表示が義務化(困ったぞ)
    [vba]マジですか2021年4月までにプライスカード作り直し!

    なんでコロナ禍で販売激減中に
    こんなこと強制させるんだ!

    2,3年延期すべきでは

    誰に言えばいいんだ?
    プラカード持って霞が関に行けば
    延期してくれるかな?

    とりあえず「プライスカード発行」vbaプログラムを改良

    「二重価格プライスカード」を作成

    これが新しい操作画面
    [vba]マジですか2021年4月までにプライスカード作り直し!

    レポートデザインビューがこれ
    [vba]マジですか2021年4月までにプライスカード作り直し!

    「税抜価格」印字の為、「内税価格」印字スペースが縮小

    苦肉の策で、最大5桁(99,999円)とし、VBAで4桁(1,000円)以上と以下でフォントサイズを変える

    [code lang=”vb”] If Me![売価税込] >= 1000 Then
    Me![売価税込].FontSize = 16
    Else
    Me![売価税込].FontSize = 18
    End If
    [/code]

    完成した「二重価格プライスカード」がこれ
    商品名全角20文字、価格は最大99,999円
    [vba]マジですか2021年4月までにプライスカード作り直し!

    データ収集は、私の自信作Androidアプリ「なんちゃってハンディターミナル」
    [vba]マジですか2021年4月までにプライスカード作り直し!

    さて、これで準備完了
    後は、人をやり繰りし得意先のプライスカード情報を集めに行かねば・・・

    コロナ+増税で、売上減少と経費増の2重苦

    これまでは無料サービス
    でも今回、プライスカード作成費の一部だけでも負担していただけないかな?

  • [vbaエラー]開始位置32916が有効ではありません。開始位置は32767以内で・・

    本業終了後、夜な夜な得意先に導入されるEDIシステムへの対応プログラムを開発。

    疲れたよ!

    得意先から渡された仕様書を読むと

    業界標準の流通BMIシステム

    業界標準ってどういう意味かと思ったら、何のことは無い
    全業種に対応するために無駄にたくさんの項目が用意されたテーブルを持つシステムでした!

    水域・産地名・等級・養殖区分・解凍・部位・カラー名称・・・・

    9割以上、加工食品卸業に関係ない項目。

    すごくプログラムし難いんですけど、これ!

    取り合えずEDIアップロード用「実出荷データ」を用意しcsvエクスポートテスト・・・

    すると、見たことのないエラー

    フィールドF134の開始位置32916が有効ではありません。
    開始位置は32767以内で指定してください。

    【VBAエラー】開始位置32916が有効ではありません。開始位置は32767以内で・・


    何これ?

    原因究明の為、項目文字数・項目数を変えながら何度もテストしたら・・・・・・

    エラー原因、わかりました!

    項目数が多すぎてMS-Access君がエクスポート用定義を作れないみたい!

    なんだ、そんな原因ならTextStreamを使えばいいじゃん!

    select caseで項目ごとの固定値も簡単に指定できる。

    流通BMI開発は、TextStreamで楽勝ね!
    逆に言えば、項目がバカみたいに多い流通BMI、
    TextStreamを知らないと開発出来ません。

    [vb] Private Sub btnEDIexp_Click()

    Dim i As Integer
    Dim FnameS As String

    i = 0
    FnameS = "C:\katabe\EDIupload.csv"

    Dim FSO As New FileSystemObject
    Dim f As File
    Dim st As TextStream

    Set st = FSO.CreateTextFile("C:\katabe\EDIupload.csv")

    Dim cn As ADODB.Connection
    Set cn = Application.CurrentProject.Connection
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    rs.Open "select * from QEDIエクスポートソース", cn, adOpenKeyset, adLockOptimistic

    Dim myTEXT As String

    myTEXT = ""

    ‘検証用ヘッダー部

    For i = 1 To 188

    If i = 188 Then
    myTEXT = myTEXT & "F" & i
    Else
    myTEXT = myTEXT & "F" & i & ","
    End If
    Next i

    st.WriteLine (myTEXT)

    Do While rs.EOF = False
    myTEXT = ""
    For i = 0 To 187

    Select Case i
    Case 0
    myTEXT = rs.Fields(i)
    Case 4, 8, 9, 13, 26, 39, 45, 98, 100, 111, 123, 132, 139, 142, 145, 153, 161
    myTEXT = myTEXT & "," & rs.Fields(i)
    Case 5
    myTEXT = myTEXT & ",00" ‘固定00
    Case 19
    myTEXT = myTEXT & ",03" ‘固定03
    Case 33
    myTEXT = myTEXT & ",02" ‘固定02
    Case 66
    myTEXT = myTEXT & ",999" ‘固定999
    Case 84
    myTEXT = myTEXT & ",00" ‘固定00
    Case 89
    myTEXT = myTEXT & ",01" ‘固定01
    Case 133
    myTEXT = myTEXT & "," & Date()
    Case 155
    myTEXT = myTEXT & ",1" ‘固定1
    Case Else
    myTEXT = myTEXT & ","
    End Select

    Next i

    st.WriteLine (myTEXT)

    rs.MoveNext

    Loop

    rs.Close
    cn.Close

    st.Close

    Call Shell("notepad.exe C:\katabe\EDIupdate.csv", 1)

    End Sub
    [/vb]

    これまでの物件は全てヘッダー・フッターが必要だった為、最初からTextStreamで開発してました。
    その為、今回のエラーに遭遇しなかったのかな?