[AccessD] Getting internet data

DWUTKA at marlow.com DWUTKA at marlow.com
Wed Jan 28 15:33:21 CST 2004


John, I wrote some code that that PUSHES data to a web page, but it would be
a simple matter of reversing the process (sort of) to read data from the
web.  Here's the module I wrote to do that:

Option Compare Database
Public KatIE As InternetExplorer
Function CheckForNull(strTemp)
If IsNull(strTemp) Then
    CheckForNull = ""
Else
    CheckForNull = strTemp
End If
End Function
Function OpenKatExplorer()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "tblDefaultURL", CurrentProject.Connection, adOpenKeyset,
adLockReadOnly
rs.MoveFirst
Set KatIE = Nothing
Set KatIE = GetObject("", "InternetExplorer.Application")
KatIE.Visible = True
KatIE.Navigate rs.Fields(0).Value
rs.Close
Set rs = Nothing
End Function
Function SetKatData(strKey As String)
On Error GoTo ErrorHandler
Dim strSQL As String
Dim rs As Recordset
Dim rsTemp As Recordset
Dim itm
Dim tmpDate As Date
Dim intMonth As Long
Dim intYear As Long
strSQL = "SELECT tblSORM_TWCC1S.I_strLastName,
tblSORM_TWCC1S.I_strMiddleName, tblS" & _
"ORM_TWCC1S.I_strFirstName, tblSORM_TWCC1S.I_strSex,
tblSORM_TWCC1S.I_strSocialSecu" & _
"rityNumber, tblSORM_TWCC1S.I_strHomePhone,
tblSORM_TWCC1S.I_strWorkPhoneNumber, tb" & _
"lSORM_TWCC1S.P_logSpeakEnglish, tblSORM_TWCC1S.I_strStreetAddress1,
tblSORM_TWCC1S" & _
".I_strStreetAddress2, tblSORM_TWCC1S.I_strCity, tblSORM_TWCC1S.P_strCounty,
tblSOR" & _
"M_TWCC1S.I_strZipCode, tblSORM_TWCC1S.IM_memIncidentDescription,
tblSORM_TWCC1S.I_" & _
"strWorksiteLocation, tblSORM_TWCC1S.I_strSiteName,
tblSORM_TWCC1S.S_strAddress1, t" & _
"blSORM_TWCC1S.S_strCounty, tblSORM_TWCC1S.S_strCity,
tblSORM_TWCC1S.S_strState, tb" & _
"lSORM_TWCC1S.S_strZipCode, tblSORM_TWCC1S.IM_memWitnesses,
tblSORM_TWCC1S.I_logDea" & _
"th, tblSORM_TWCC1S.I_strSupervisorNotified,
tblSORM_TWCC1S.I_dtmNotifiedOfIncident" & _
", tblSORM_TWCC1S.P_logRecruitedInState,
tblSORM_TWCC1S.P_strJobClassification, tbl" & _
"SORM_TWCC1S.II_intHourPerDay, tblSORM_TWCC1S.II_curWagePerWeek,
tblSORM_TWCC1S.SORM" & _
"_curLastPayCheck, tblSORM_TWCC1S.II_intDayPerWeek,
tblSORM_TWCC1S.P_strMarried, t" & _
"blSORM_TWCC1S.P_intNumberOfDependents, tblSORM_TWCC1S.P_strSpouseName ,
tblSORM_TW" & _
"CC1S.I_strDoctorName, tblSORM_TWCC1S.D_strPhone,
tblSORM_TWCC1S.D_strStreetAddress" & _
"1, tblSORM_TWCC1S.D_strCity, tblSORM_TWCC1S.D_strState,
tblSORM_TWCC1S.D_strZipCod" & _
"e, tblSORM_TWCC1S.I_dtmIncidentDate, tblSORM_TWCC1S.I_dtmIncidentTime,
tblSORM_TWC" & _
"C1S.C_strAddress1, tblSORM_TWCC1S.C_strPhone, tblSORM_TWCC1S.C_strCity,
tblSORM_TW" & _
"CC1S.C_strState, tblSORM_TWCC1S.C_strZipCode,
tblSORM_TWCC1S.C_strFederalTaxNumber" & _
", tblSORM_TWCC1S.C_strSICStandard, tblSORM_TWCC1S.C_strSICSpecific,
tblSORM_TWCC1S" & _
".P_strPayCode, tblSORM_TWCC1S.P_dtmDateOfHire, tblSORM_TWCC1S.P_dtmDateOf"
& _
"Birth, tblSORM_TWCC1S.P_strLanguage, tblSORM_TWCC1S.LD_dtmFirstLostDay,
tblSORM_T" & _
"WCC1S.JobCompare, tblSORM_TWCC1S.I_dtmDateBackToWork,
tblSORM_TWCC1S.Sorm_intLenOc" & _
"cYears, tblSORM_TWCC1S.Sorm_intLenOccMonths,
tblSORM_TWCC1S.Sorm_logacci_prevent_r" & _
"eq, tblSORM_TWCC1S.Sorm_logacci_prevent_received,
tblSORM_TWCC1S.Sorm_logOwner, "
strSQL = strSQL & "tblSORM_TWCC1S.Sorm_intSickHours, tblSORM_TWCC1S" & _
".Sorm_intAnnualLeave, tblSORM_TWCC1S.P_strLanguage,
tblSORM_TWCC1S.I_strState, t" & _
"blSORM_TWCC1S.P_strCounty, tblSORM_TWCC1S.C_strPersonCompletingFormName" &
_
", tblSORM_TWCC1S.C_strPersonCompletingFormJobTitle,
tblSORM_TWCC1S.Sorm_strAgencyLocationCode" & _
", tblSORM_TWCC1S.Sorm_logacci_prevent_req,
tblSORM_TWCC1S.Sorm_logacci_prevent_received " & _
"FROM tblSORM_TWCC1S " & _
"WHERE (((tblSORM_TWCC1S.pkCaseNumber)=""" & strKey & """));"
Set rs = New ADODB.Recordset
rs.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
If rs.EOF = False Then
    rs.MoveFirst
    With KatIE.Document.theForm
        .lastname.Value = CheckForNull(rs.Fields(0).Value)
        .middlename.Value = CheckForNull(rs.Fields(1).Value)
        .firstname.Value = CheckForNull(rs.Fields(2).Value)
        Select Case UCase(Left(CheckForNull(rs.Fields(3).Value), 1))
            Case "F"
                .gender(0).Checked = True
            Case "M"
                .gender(1).Checked = True
        End Select
        .SSN.Value = CheckForNull(rs.Fields(4).Value)
        .homephone.Value = CheckForNull(rs.Fields(5).Value)
        .employeephone.Value = CheckForNull(rs.Fields(6).Value)
        If rs.Fields(7).Value = True Then
            .english(0).Checked = True
        Else
            .english(1).Checked = True
            .language.Value = CheckForNull(rs.Fields(64).Value)
        End If
        .mail_address1.Value = CheckForNull(rs.Fields(8).Value)
        .mail_address2.Value = CheckForNull(rs.Fields(9).Value)
        .mail_city.Value = CheckForNull(rs.Fields(10).Value)
        For Each itm In .mail_county.options
            If Trim(UCase(Mid(itm.Text, 5))) =
Trim(UCase(CheckForNull(rs.Fields(11).Value))) Then
                itm.Selected = True
                Exit For
            End If
        Next
        .mail_zip.Value = CheckForNull(rs.Fields(12).Value)
        .mail_state.Value = CheckForNull(rs.Fields(65).Value)
        .occurred_how.Value = CheckForNull(rs.Fields(13).Value)
        .injury_location.Value = CheckForNull(rs.Fields(14).Value)
        .site_address_name.Value = CheckForNull(rs.Fields(15).Value)
        .site_street.Value = CheckForNull(rs.Fields(16).Value)
        For Each itm In .site_county.options
            If Trim(UCase(Mid(itm.Text, 5))) =
Trim(UCase(CheckForNull(rs.Fields(17).Value))) Then
                itm.Selected = True
                Exit For
            End If
        Next
        .site_city.Value = CheckForNull(rs.Fields(18).Value)
        .site_state.Value = CheckForNull(rs.Fields(19).Value)
        .site_zip.Value = CheckForNull(rs.Fields(20).Value)
        .witnesses.Value = CheckForNull(rs.Fields(21).Value)
        If rs.Fields(22).Value = True Then
            .emp_death(0).Checked = True
        Else
            .emp_death(1).Checked = True
        End If
        .supervisor_name.Value = CheckForNull(rs.Fields(23).Value)
        .report_date.Value = Format(CheckForNull(rs.Fields(24).Value),
"mm/dd/yyyy")
        If CheckForNull(rs.Fields(25).Value) = True Then
            .tx_recruit(0).Checked = True
        Else
            .tx_recruit(1).Checked = True
        End If
        .injured_occupy.Value = CheckForNull(rs.Fields(26).Value)
        .pay_rate.Value = CheckForNull(rs.Fields(28).Value)
        .pay_frequency.Value = "W"
        .full_week_hours.Value = rs.Fields(27).Value * rs.Fields(30).Value
        .last_paycheck.Value = Format(CheckForNull(rs.Fields(29).Value),
"#,##0.00")
        .full_week_days.Value = CheckForNull(rs.Fields(30).Value)
        For Each itm In .marital_status.options
            If Trim(UCase(itm.Text)) =
Trim(UCase(CheckForNull(rs.Fields(31).Value))) Then
                itm.Selected = True
                Exit For
            End If
        Next
        .kid_number.Value = CheckForNull(rs.Fields(32).Value)
        .spouse_name.Value = CheckForNull(rs.Fields(33).Value)
        .doctor_name.Value = CheckForNull(rs.Fields(34).Value)
        .doctor_phone.Value = Format(CheckForNull(rs.Fields(35).Value),
"000-000-0000")
        .doctor_street.Value = CheckForNull(rs.Fields(36).Value)
        .doctor_city.Value = CheckForNull(rs.Fields(37).Value)
        .doctor_state.Value = CheckForNull(rs.Fields(38).Value)
        .doctor_zip.Value = CheckForNull(rs.Fields(39).Value)
        .injury_date.Value = Format(CheckForNull(rs.Fields(40).Value),
"mm/dd/yyyy")
        .injury_time.Value = Left(Format(CheckForNull(rs.Fields(41).Value),
"hh:nnAMPM"), 5)
        If Hour(CheckForNull(rs.Fields(41).Value)) >= 12 Then
            .injury_AMPM(1).Checked = True
        Else
            .injury_AMPM(0).Checked = True
        End If
        .agency_mail_address.Value = CheckForNull(rs.Fields(42).Value)
        .agency_phone.Value = Format(CheckForNull(rs.Fields(43).Value),
"000-000-0000")
        .agency_city.Value = CheckForNull(rs.Fields(44).Value)
        .agency_state.Value = CheckForNull(rs.Fields(45).Value)
        .agency_zip.Value = CheckForNull(rs.Fields(46).Value)
        .fed_id_num.Value = CheckForNull(rs.Fields(47).Value)
        .pSIC.Value = CheckForNull(rs.Fields(48).Value)
        .sSIC.Value = CheckForNull(rs.Fields(49).Value)
        .payroll_class_code.Value = CheckForNull(rs.Fields(50).Value)
        .hire_date.Value = Format(CheckForNull(rs.Fields(51).Value),
"mm/dd/yyyy")
        .birth_date.Value = CheckForNull(rs.Fields(52).Value)
        .language.Value = CheckForNull(rs.Fields(53).Value)
        If IsNull(rs.Fields(54).Value) Then
            .loss_date.Value = "NLT"
        Else
            .loss_date.Value = Format(rs.Fields(54).Value, "mm/dd/yyyy")
        End If
        If UCase(CheckForNull(rs.Fields(55).Value)) = "YES" Then
            .normal_job(0).Checked = True
        Else
            .normal_job(1).Checked = True
        End If
        .return_date.Value = Format(CheckForNull(rs.Fields(56).Value),
"mm/dd/yyyy")
        .occupy_years.Value = CheckForNull(rs.Fields(57).Value)
        .occupy_months.Value = CheckForNull(rs.Fields(58).Value)
        If rs.Fields(59).Value = True Then
            .accident_prevent_req_receive(0).Checked = True
        Else
            .accident_prevent_req_receive(1).Checked = True
        End If
        If rs.Fields(60).Value = True Then
            .accident_prevent_req_resolve(0).Checked = True
        Else
            .accident_prevent_req_resolve(1).Checked = True
        End If
        If rs.Fields(61).Value = True Then
            .officer(0).Checked = True
        Else
            .officer(1).Checked = True
        End If
        .injury_cause.Value = CheckForNull(rs.Fields(62).Value)
        .sick_leave.Value = CheckForNull(rs.Fields(62).Value)
        .annual_leave.Value = CheckForNull(rs.Fields(63).Value)
        .completing_name.Value = CheckForNull(rs.Fields(67).Value)
        .completing_title.Value = CheckForNull(rs.Fields(68).Value)
        .agency_lcode1.Value = CheckForNull(rs.Fields(69).Value)
        If rs.Fields(70).Value = True Then
            .accident_prevent_req_receive(0).Checked = True
        Else
            .accident_prevent_req_receive(1).Checked = True
        End If
        If rs.Fields(71).Value = True Then
            .accident_prevent_req_resolve(0).Checked = True
        Else
            .accident_prevent_req_resolve(1).Checked = True
        End If
        Set rsTemp = New ADODB.Recordset
        strSQL = "SELECT tblSORM_NatureOfInjury.SormN_strDescription " & _
        "FROM tblSORM_NatureOfInjury " & _
        "WHERE (((tblSORM_NatureOfInjury.SormN_fk_CaseNumber)=""" & strKey &
"""));"
        rsTemp.Open strSQL, CurrentProject.Connection, adOpenKeyset,
adLockReadOnly
        If rsTemp.EOF = False Then rs.MoveFirst
        Do Until rsTemp.EOF = True
            For Each itm In .injury_nature.options
                If Trim(UCase(itm.Text)) =
Trim(UCase(rsTemp.Fields(0).Value)) Then
                    itm.Selected = True
                    Exit For
                End If
            Next
            rsTemp.MoveNext
        Loop
        rsTemp.Close
        Set rsTemp = Nothing
        Set rsTemp = New ADODB.Recordset
        strSQL = "SELECT tblSORM_BodyPart.SormBDY_strDescription " & _
        "FROM tblSORM_BODYPart " & _
        "WHERE (((tblSORM_BodyPart.SormBDY_fk_CaseNumber)=""" & strKey &
"""));"
        rsTemp.Open strSQL, CurrentProject.Connection, adOpenKeyset,
adLockReadOnly
        If rsTemp.EOF = False Then rs.MoveFirst
        Do Until rsTemp.EOF = True
            For Each itm In .part_injured.options
                If Trim(UCase(itm.Text)) =
Trim(UCase(rsTemp.Fields(0).Value)) Then
                    itm.Selected = True
                    Exit For
                End If
            Next
            rsTemp.MoveNext
        Loop
        rsTemp.Close
        Set rsTemp = Nothing
        Set rsTemp = New ADODB.Recordset
        strSQL = "SELECT tblSORM_Cause.SormCS_strDescription " & _
        "FROM tblSORM_Cause " & _
        "WHERE (((tblSORM_Cause.SormCS_fk_CaseNumber)=""" & strKey & """));"
        rsTemp.Open strSQL, CurrentProject.Connection, adOpenKeyset,
adLockReadOnly
        If rsTemp.EOF = False Then rs.MoveFirst
        Do Until rsTemp.EOF = True
            For Each itm In .injury_cause.options
                If Trim(UCase(itm.Text)) =
Trim(UCase(rsTemp.Fields(0).Value)) Then
                    itm.Selected = True
                    Exit For
                End If
            Next
            rsTemp.MoveNext
        Loop
        rsTemp.Close
        Set rsTemp = Nothing
        tmpDate = CheckForNull(rs.Fields(51).Value)
        intMonth = 0
        intYear = 0
        tmpDate = tmpDate + (365.25 / 12)
        Do Until tmpDate >= rs.Fields(40).Value
            intMonth = intMonth + 1
            If intMonth = 12 Then
                intMonth = 0
                intYear = intYear + 1
            End If
            tmpDate = tmpDate + (365.25 / 12)
        Loop
        .pos_service_years.Value = intYear
        .pos_service_months.Value = intMonth
    End With
    MsgBox "Done"
Else
    MsgBox "No Data for this case number.", vbOKOnly + vbCritical, "No Data"
End If
rs.Close
Set rs = Nothing
Exit Function

ErrorHandler:

MsgBox "Data Upload failed."
Err.Clear
End Function

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of John W. Colby
Sent: Wednesday, January 28, 2004 1:03 PM
To: AccessD
Subject: [AccessD] Getting internet data


I need to get some internet data into a db.  In order to do that I need to
"navigate", specifically I have to enter a username / password which will
bring me to a specific page.  After that clicking on tabs at the top take me
to other pages I'd also like to get data off of.

Does anyone know how to do this from VBA?

John W. Colby
www.ColbyConsulting.com


_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


More information about the AccessD mailing list