Cuando ejecutamos una aplicación en un entorno Windows, este está configurado con una serie de preferencias regionales como son el formato de la fecha, los separadores decimales, el tipo de moneda, etc. A este conjunto de definiciones de una región se le llama cultura.
Y no tendría mayor importancia si no fuese por que el lenguaje SQL no interpreta correctamente las "comas" como símbolo decimal, pues las confunde con el separador de campos. Imaginemos esta secuencia:
"INSERT INTO PRODUCTOS (DESCRIPCION,REFERENCIA,PRECIO,STOCK) VALUES ('PIPAS','PIP',2.34,50)
El precio "2.34" si no estuviera indicado con punto, provocaría un error pues SQL interpreta que estaríamos indicando 5 valores para 4 campos posibles.
Para evitar esto debemos declarar al iniciar la aplicación lo siguiente en el formulario principal de la misma en el evento LOAD.
Dim cultura As New CultureInfo("es-ES", True)
cultura .NumberFormat.CurrencyDecimalSeparator = "."
cultura .NumberFormat.NumberDecimalSeparator = "."
cultura .NumberFormat.PercentDecimalSeparator = "."
Application.CurrentCulture = cultura
Para poder definir esto deberemos incluir el espacio de nombres System.Globalization al inicio del FORM.