Subject: adding value to drop down list
Posted By: sherr8 Post Date: 11/16/2004 1:49:39 PM
Ok I have another scenario now it's a bit hard to explain but I will try my best. I am trying to add an estimate number to an existing contract number but it tells me the estimate number already exists. Obviously because let's say contract number S-888 has 10 estimates and contract number S-444 has 5 estimates. But my problem is how can I add an estimate number without giving me the duplicate error? Any help please would truly help thanks . Here are the functions:

<%

' --- FUNCTIONS STARTS BELOW

Function searchContract()

    ' Local Recordset
    dim rsLocal
    set rsLocal = server.CreateObject("adodb.recordset")
    ' Search for a contract alone or contract AND estimate
    if strEstimateNum <> "" then
        ' Set rsLocal = FindEstimateContracts(strContractNum,         strEstimateNum)
        SQL = "Select * from tblEstimates(nolock) where contno = '" & strContractNum & "' and estno='" & strEstimateNum & "' order by estno"
    else
        SQL = "Select top 1 * from tblEstimates(nolock) where contno = '" & strContractNum & "' order by estno"
    end if
    ' Open Recordset
    rsLocal.Open SQL, cn
 
    ' Check for end of file (eof)
    if rsLocal.EOF then
      'response.write "<script language=javascript>alert('Project Number Not Found');</script>"
      %>
        <script language=javascript>
            alert("Contract Number Not Found");
        </script>
      <%
    else
      do while not rsLocal.EOF
        contno = rsLocal("contno")
        estno = rsLocal("estno")
        contractor = rsLocal("contractor")
        estamt = iif(isnull(rsLocal("estamt")), 0, rsLocal("estamt"))
        retainage=iif(isnull(rsLocal("retainage")), 0, rsLocal("retainage"))
        otherdeduct=iif(isnull(rsLocal("otherdeduct")),0, rsLocal("otherdeduct"))
        netestamt=iif(isnull(rsLocal("netestamt")), 0, rsLocal("netestamt"))
        amttodate=iif(isnull(rsLocal("amttodate")),0, rsLocal ("amttodate"))
        rsvdcontamt=iif(isnull(rsLocal("rsvdcontamt")),0, rsLocal("rsvdcontamt"))
        estdate=rsLocal("estdate")
        perenddate=rsLocal("perenddate")
        eststatus=rsLocal("eststatus")
        prelimrsvd=rsLocal("prelimrsvd")
        projmgrapproval=rsLocal("projmgrapproval")
        contractorsigned=rsLocal("contractorsigned")
        assistdirector=rsLocal("assistdirector")
        cmdchief=rsLocal("cmdchief")
        staffdone=rsLocal("staffdone")
        contreviewapproval=rsLocal("contreviewapproval")
        receiveddate=rsLocal("receiveddate")
        submittoap=rsLocal("submittoap")
        checkdate=rsLocal("checkdate")
        checkno=rsLocal("checkno")
        recfromap=rsLocal("recfromap")
        comments=rsLocal("comments")
        paiddate=rsLocal("paiddate")
        trackingnum=rsLocal("trackingnum")
      rsLocal.movenext
      loop
    end if

    set rsLocal = nothing
End Function

Function addContract()
    ' Local Recordset
    dim rsLocal
    ' Add Project
    set rsLocal = server.CreateObject("adodb.recordset")
    SQL = "select * from tblEstimates where estno = '" & strEstimateNum & "'"
    'response.write "We are adding"
    'response.end
    ' Run Query
    rsLocal.open SQL, cn, 0, 3
    ' Check to see if project exists
    If not rsLocal.eof Then
        ' Estimate does not exist, add new record
        With rsLocal
            .addnew
            .Fields("estno") = strEstimateNum
            .update
            .close
        End With
    Else
        ' Project already exists, display error message
        Response.Write "Error: Estimate Number " & strEstimateNum & " already exists!"
    End If
    set rsLocal =  nothing
End Function

Function updateContract()
    ' Local Recordset
    dim rsLocal
    ' Update Contract
    set rsLocal = server.CreateObject("adodb.recordset")
    SQL = "select * from tblEstimates where estno = '" & strEstimateNum & "'"
    'response.write "We are updating " & SQL
    With rsLocal
        .open SQL, cn, 0, 3
        If .recordcount = 1 then
            '.Fields("contno") = request("contno") <- never update key fields
            .Fields("estno") = request("estno")
            .Fields("contractor") = request("contractor")
            .Fields("estamt") = request("estamt")
            .Fields("retainage") = request("retainage")
            .Fields("otherdeduct") = request("otherdeduct")
            .Fields("netestamt") = request("netestamt")
            .Fields("amttodate") = request("amttodate")
            .Fields("rsvdcontamt")=request("rsvdcontamt")
            .Fields("estdate")=convertBlankToNull(request("estdate"))
            .Fields("perenddate")=convertBlankToNull(request("perenddate"))
            .Fields("eststatus")=request("eststatus")
            .Fields("prelimrsvd")=convertBlankToNull(request("prelimrsvd"))  
            .Fields("projmgrapproval") = convertBlankToNull(request("projmgrapproval"))
            .Fields("contractorsigned") = convertBlankToNull(request("contractorsigned"))
            .Fields("assistdirector") = convertBlankToNull(request("assistdirector"))
            .Fields("cmdchief") = convertBlankToNull(request("cmdchief"))
            .Fields("staffdone") = convertBlankToNull(request("staffdone"))
            .Fields("contreviewapproval")=convertBlankToNull(request("contreviewapproval"))
            .Fields("receiveddate")=convertBlankToNull(request("receiveddate"))
            .Fields("submittoap")=convertBlankToNull(request("submittoap"))
            .Fields("checkdate")=convertBlankToNull(request("checkdate"))
            .Fields("checkno")=convertBlankToNull(request("checkno"))
            .Fields("recfromap")=convertBlankToNull(request("recfromap"))
            .Fields("comments")=request("comments")
            .Fields("paiddate")=convertBlanktoNull(request("paiddate"))
            .Fields("trackingnum")=request("trackingnum")
            .update
            .close
            '.movelast
        Else
            response.write "Error: Attempting to update " & .recordcount &" records is not allowed.  Please contact system administrator."
        End If
    End With
    set rsLocal =  nothing
    
End Function

Function deleteContract()
    ' Local Recordset
    dim rsLocal
    ' Delete Contract
    Set rsLocal = server.CreateObject("adodb.recordset")
    SQL = "select * from tblEstimates where estno = '" & strEstimateNum & "'"
    'response.write "We are deleting"
    'response.end
    ' Run Query
    rsLocal.open SQL, cn, 0, 3
    ' Check to see if project exists
    If not rsLocal.eof Then
        ' deletes record
        With rsLocal
            .delete
            .movenext
            .close
        End With
    Else
        ' Contract does not exists, display error message
        ' Response.Write "Error: Contract " & strContractNum & " no longer exists!"
    End If
    set rsLocal =  nothing
End Function

' --- PROCESSING LOGIC STARTS BELOW

dim strContractNum, strEstimateNum, rsContr, contno, estno, contractor, estamt, retainage, otherdeduct, netestamt, amttodate, rsvdcontamt, estdate, perenddate, eststatus, prelimrsvd, projmgrapproval, contractorsigned, assistdirector, cmdchief, staffdone, contreviewapproval, receiveddate, submittoap, checkdate, checkno, recfromap, comments, paiddate, trackingnum, btnAction

' check if we are searching for a contract
strContractNum = request("contractnumhidden") ' from hidden variable
' check if we are searching for an estimate number
strEstimateNum = request("estimatenumhidden") ' from hidden variable

' Process the Add/Update/Delete/Search functions
btnAction = request("btnAction")
select case btnAction
    case "AddEstimate"
        ' Add the contract
        if strEstimateNum <> "" then  ' Make sure user entered a value
            addContract()
            response.write "in add function add estimate " & strEstimateNum
            'response.end
            ' After the add, perform a search to reload contract :)
            searchContract
        end if
    case "UpdateEstimate"
        ' Update the estimate
        if strEstimateNum <> "" then
            updateContract()
            response.write "in update function update estimate " & strEstimateNum
            response.end
            ' After the update, perform a search to reload contract :)
            searchContract
        end if
    case "DeleteEstimate"
        'Delete the estimate
        if strEstimateNum <> "" then
            deleteContract()
            response.write "in delete function delete estimate " & strEstimateNum
            response.end
            ' After the delete, perform a search to reload contract :)
            'searchContract
        end if
    case ""
        ' Process the search
        if strEstimateNum <> "" then
            searchContract
        end if
   end select
%>



slypunk

Go to topic 21810

Return to index page 714
Return to index page 713
Return to index page 712
Return to index page 711
Return to index page 710
Return to index page 709
Return to index page 708
Return to index page 707
Return to index page 706
Return to index page 705