VBA:ssa MSComm ja Recordset

problem

terve, Onko mahollista päivittää Access-tietokantaa automaattisesti recordset objektin avulla.

Eli avaan yhteyden com-porttiin MSCommilla, lisään tietoa mitä portille tulee Recordsetillä taulussa olevaan tietueesee ja lopuksi suljen portin.

Siis tämän tyyylin makro Accessii vba:lla onkos mahollista?

Miten nuo MScomm ja recodrset tulisi yhdistää että homma toimii?

2

355

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mmm

      koodia suoraan ilmasta:

      ...koodia...
      MsComm.PortOpen = True
      ...koodia...

      Private Sub MsComm_OnComm()

      dim rst as recordset
      set rst = currentdb.openrecordset("SELECT * FROM Taulu WHERE Jokukenttä = 'arvo'")
      rst.fields("Kenttänimi") = MsComm.Input
      rst.close
      set rst = Nothing

      end sub

      ...koodia...
      MsComm.PortOpen = False
      ...koodia...

      Referenssit pitää olla DAO 3.6:een muistaakseni ainakin. MsComm pitää olla rekisteröity oikein. Asynkronisuus tuottaa varmaan päänvaivaa, tiedoston loppumerkki auttanee tässä.

      • problem

        tommoseen päädyin...miltä vaikuttaa gurujen silmin?

        Private Sub Form_Load()

        MSComm1.CommPort = 1
        MSComm1.Handshaking = 0
        MSComm1.Rthreshold = 0
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.InputLen = 0
        MSComm1.PortOpen = True

        End Sub


        Private Sub MSComm1_OnComm()
        AddScanRecords_Open
        End Sub

        Sub AddScanRecords()

        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim StartTime As Date

        StartTime = Now()

        Set cn = CurrentProject.Connection
        Set rs = New ADODB.Recordset

        rs.Open "ScanResults", cn, adOpenKeyset, adLockOptimistic ' ScanResults is the name of the table

        Do While Now() < StartTime TimeSerial(0, 0, 1) ' test run for one second - can Add hours Or minutes
        rs.AddNew
        ' this is where you would wait for and insert the bar code.
        rs![BarCode] = MSComm1.Input ' BarCode is the field name you would replace "testthissub" with the bar code input
        rs![ScanDate] = Now()
        rs.Update
        Loop

        MSComm1.PortOpen = False ' Close the com port

        End Sub


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Oletko kertonut jo muille tunteistasi?

      Ystävillesi esimerkiksi? Minä en ole vielä kertonut kenellekään tästä meidän jutusta.
      Ikävä
      77
      4622
    2. Olisin ottanut sinusta akan itselleni

      Mutta olitkin aika itsepäinen ja hankala luonne.
      Ikävä
      180
      1897
    3. Ei sua pysty unohtamaan

      Ei vaan yksinkertaisesti pysty
      Ikävä
      124
      1590
    4. Kerro todelliset motiivit

      kaivattuasi kohtaan?
      Ikävä
      124
      1125
    5. Miten minusta tuntuu että kaikki tietää sun tunteista mua kohtaan

      Paitsi suoraan minä itse, vai mitä hlvettiä täällä tapahtuu ja miksi ihmiset susta kyselee minulta 🤔❤️
      Ikävä
      16
      1061
    6. Hei, huomenta komistus

      Yllättääkö, että olet heti mielessä. Mukavaa päivää upea ❤️
      Ikävä
      35
      1036
    7. Sunnuntain terveiset kaivatulle

      Mitä ajattelet hänestä tänään? Mitä haluaisit sanoa hänelle?
      Ikävä
      78
      933
    8. Miks et tahtonut

      Enää nähdä? Haluaisin ymmärtää
      Ikävä
      52
      896
    9. Hyvää huomenta!

      Mietin miten suhtaudut minuun, jos kerron tunteista. Voinko enää sen jälkeen olla samassa paikassa kanssasi, jos koet as
      Ikävä
      78
      872
    10. Mulla on tarkat korvat

      Kuulin sun äänen ihan selvästi.
      Ikävä
      4
      828
    Aihe