Uma família de softwares de planilhas da Microsoft com ferramentas para analisar, criar gráficos e comunicar dados
Se preferir integrar o código SQL que atualiza várias linhas de uma tabela ao mesmo tempo, você pode substituir o loop While existente pelo seguinte código:
| Dim pedido_tr As StringDim status_pedido As StringDim filtra_PedidoEx As StringDim status_PedidoEx As StringDim updateQuery As StringFor ln = 2 To ultcel.Row pedido_tr = UCase(xls.Cells(ln, col + 1)) status_pedido = UCase(xls.Cells(ln, col + 4)) filtra_PedidoEx = filtra_PedidoEx & "'" & pedido_tr & "', " status_PedidoEx = status_PedidoEx & "'" & status_pedido & "', "Next ln' Remover a vírgula extra no final das strings de filtro e de statusfiltra_PedidoEx = Left(filtra_PedidoEx, Len(filtra_PedidoEx) - 2)status_PedidoEx = Left(status_PedidoEx, Len(status_PedidoEx) - 2)' Construir a consulta de atualizaçãoupdateQuery = "UPDATE tbl_monitoramento_LM SET status_pedido = CASE pedido_tr "updateQuery = updateQuery & "WHEN " & filtra_PedidoEx & " THEN " & status_PedidoEx & " END"' Executar a consultars.Open updateQuery, conn |
|---|
Neste exemplo, a instrução SQL de atualização em massa é construída dinamicamente dentro do loop For que percorre as linhas da planilha do Excel. Em vez de executar uma consulta de atualização para cada linha, a instrução SQL é construída para atualizar todas as linhas em uma única consulta.
A cláusula CASE é usada para atualizar cada linha com o status correto com base no valor da coluna "pedido_tr". A consulta de atualização em massa é executada apenas uma vez após o loop For.