Results 1 to 7 of 7

Thread: Covert SQL Code to VBA

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #3
    Member ayazgreat's Avatar
    Join Date
    Mar 2012
    Posts
    86
    Rep Power
    14
    Thanks bakerman for your reply but you have converted only one macro of attached workbook there are more macros/code in attached workbook

    Code:
    Private Sub cmdReset_Click()
        'clear the data
        cmbProducts.Clear
        cmbCustomerType.Clear
        cmbRegion.Clear
        Sheets("View").Visible = True
        Sheets("View").Select
        Range("dataSet").Select
        Range(Selection, Selection.End(xlDown)).ClearContents
    End Sub
    
    Private Sub cmdShowData_Click()
        'populate data
        strSQL = "SELECT * FROM [data$] WHERE "
        If cmbProducts.Text <> "" Then
            strSQL = strSQL & " [Product]='" & cmbProducts.Text & "'"
        End If
        
        If cmbRegion.Text <> "" Then
            If cmbProducts.Text <> "" Then
                strSQL = strSQL & " AND [Region]='" & cmbRegion.Text & "'"
            Else
                strSQL = strSQL & " [Region]='" & cmbRegion.Text & "'"
            End If
        End If
    
        If cmbCustomerType.Text <> "" Then
            If cmbProducts.Text <> "" Or cmbRegion.Text <> "" Then
                strSQL = strSQL & " AND [Customer Type]='" & cmbCustomerType.Text & "'"
            Else
                strSQL = strSQL & " [Customer Type]='" & cmbCustomerType.Text & "'"
            End If
        End If
        
        If cmbProducts.Text <> "" Or cmbRegion.Text <> "" Or cmbCustomerType.Text <> "" Then
            'now extract data
            closeRS
            
            OpenDB
            
            rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
            If rs.RecordCount > 0 Then
                Sheets("View").Visible = True
                Sheets("View").Select
                Range("dataSet").Select
                Range(Selection, Selection.End(xlDown)).ClearContents
                
                'Now putting the data on the sheet
                ActiveCell.CopyFromRecordset rs
            Else
                MsgBox "I was not able to find any matching records.", vbExclamation + vbOKOnly
                Exit Sub
            End If
    
            'Now getting the totals using Query
            If cmbProducts.Text <> "" And cmbRegion.Text <> "" And cmbCustomerType.Text <> "" Then
                strSQL = "SELECT Count([data$].[Call ID]) AS [CountOfCall ID], [data$].[Resolved] " & _
                " FROM [Data$] WHERE ((([Data$].[Product]) = '" & cmbProducts.Text & "' ) And " & _
                " (([Data$].[Region]) =  '" & cmbRegion.Text & "' ) And (([Data$].[Customer Type]) =  '" & cmbCustomerType.Text & "' )) " & _
                " GROUP BY [data$].[Resolved];"
                
                closeRS
                OpenDB
                
                rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
                If rs.RecordCount > 0 Then
                    Range("L6").CopyFromRecordset rs
                Else
                    Range("L6:M7").Clear
                    MsgBox "There was some issue getting the totals.", vbExclamation + vbOKOnly
                    Exit Sub
                End If
            End If
        End If
    End Sub
    
    Private Sub cmdUpdateDropDowns_Click()
        strSQL = "Select Distinct [Product] From [data$] Order by [Product]"
        closeRS
        OpenDB
        cmbProducts.Clear
        
        rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
        If rs.RecordCount > 0 Then
            Do While Not rs.EOF
                cmbProducts.AddItem rs.Fields(0)
                rs.MoveNext
            Loop
        Else
            MsgBox "I was not able to find any unique Products.", vbCritical + vbOKOnly
            Exit Sub
        End If
        
        '----------------------------
        strSQL = "Select Distinct [Region] From [data$] Order by [Region]"
        closeRS
        OpenDB
        cmbRegion.Clear
        
        rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
        If rs.RecordCount > 0 Then
            Do While Not rs.EOF
                cmbRegion.AddItem rs.Fields(0)
                rs.MoveNext
            Loop
        Else
            MsgBox "I was not able to find any unique Region(s).", vbCritical + vbOKOnly
            Exit Sub
        End If
        '----------------------
        strSQL = "Select Distinct [Customer Type] From [data$] Order by [Customer Type]"
        closeRS
        OpenDB
        cmbCustomerType.Clear
        
        rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
        If rs.RecordCount > 0 Then
            Do While Not rs.EOF
                cmbCustomerType.AddItem rs.Fields(0)
                rs.MoveNext
            Loop
        Else
            MsgBox "I was not able to find any unique Customer Type(s).", vbCritical + vbOKOnly
            Exit Sub
        End If
    End Sub
    Last edited by ayazgreat; 08-26-2013 at 02:13 PM.
    Somthing is better than nothing

Similar Threads

  1. Shorten VBA Code By Removing Redundant Superfluous Code
    By paul_pearson in forum Excel Help
    Replies: 2
    Last Post: 08-15-2013, 09:09 PM
  2. SQL output from Excel VBA macro
    By goldenbutter in forum Excel Help
    Replies: 3
    Last Post: 05-07-2013, 08:07 PM
  3. Replies: 2
    Last Post: 11-17-2011, 07:49 PM
  4. Execute SQL From Excel (VBA)
    By Mechanic in forum Excel and VBA Tips and Tricks
    Replies: 8
    Last Post: 10-02-2011, 04:30 PM
  5. Execute SQL From Excel (VBA)
    By Mechanic in forum Excel Help
    Replies: 0
    Last Post: 05-13-2011, 10:27 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •